您的位置:程序门 -> c/c++ ->



memcpy用法


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


memcpy用法[已结贴,结贴人:yangyira2]
发表于:2007-05-19 14:51:13 楼主
char*   ch[][3]={ "0000 "};//strlen(ch[0][0])=4
char*   src= "abc ";
memcpy(ch[0][0],src,strlen(src));

编译结果出错   ,不知道怎么回事.
发表于:2007-05-19 14:58:351楼 得分:5
memcpy(ch[0][0],src,strlen(src));
----
memcpy(&ch[0][0],src,strlen(src));
memcpy的第一个参数是   char   *   类型,需要指针。
发表于:2007-05-19 14:59:292楼 得分:5
char*   ch[][3]   没有分配内存
发表于:2007-05-19 15:20:473楼 得分:5
char*   ch[][3]={ "0000 "};是用字符串常量 "0000 "的首地址作为ch[0][0]的初始值。所在以ch[0][0]起始的这段内存在常量区,不可写。
发表于:2007-05-19 15:25:084楼 得分:5
char*   ch[][3]={ "0000 "};//strlen(ch[0][0])=4  

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

char*   src= "abc ";

memcpy(ch[0][0],src,strlen(src));
//   这里相当于改写“0000”这块内存,而其是常量不允许写
发表于:2007-05-19 15:35:375楼 得分:0
声明一个3行3列的指针2维数组吧
char   *ch[3][3]
我有9个char   *p= "abcd ";
怎样用memcpy把ch每个元素依次赋值?
发表于:2007-05-19 15:51:046楼 得分:0
必须为每个指针new一段空间让它指向了才能memcpy;

循环:

ch[i][j]   =   new   char[size];

memcpy(ch[i][j],   p,   strlen(p));
发表于:2007-05-19 16:27:227楼 得分:0
大家说的对,在下错了!55555
发表于:2007-05-19 16:33:418楼 得分:0
知错就去散分
发表于:2007-05-19 19:05:069楼 得分:0
顶ls的那句
发表于:2007-05-19 20:03:0910楼 得分:0
谢各位了
分已散,请查收.


快速检索

最新资讯
热门点击