首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

memcpy用法解决方案

2012-03-26 
memcpy用法char*ch[][3]{ 0000 }//strlen(ch[0][0])4char*src abc memcpy(ch[0][0],src,strlen(s

memcpy用法
char*   ch[][3]={ "0000 "};//strlen(ch[0][0])=4
char*   src= "abc ";
memcpy(ch[0][0],src,strlen(src));

编译结果出错   ,不知道怎么回事.

[解决办法]
memcpy(ch[0][0],src,strlen(src));
----
memcpy(&ch[0][0],src,strlen(src));
memcpy的第一个参数是 char * 类型,需要指针。
[解决办法]
char* ch[][3] 没有分配内存
[解决办法]
char* ch[][3]={ "0000 "};是用字符串常量 "0000 "的首地址作为ch[0][0]的初始值。所在以ch[0][0]起始的这段内存在常量区,不可写。
[解决办法]
char* ch[][3]={ "0000 "};//strlen(ch[0][0])=4

不知道这是要干什么?
代码做了这样一件事,声明了一个二维指针数组,并把“0000”的首地址赋值给了第一个元素

char* src= "abc ";

memcpy(ch[0][0],src,strlen(src));
// 这里相当于改写“0000”这块内存,而其是常量不允许写

热点排行