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

memcpy将一个字符数组拷贝到另一个中不成功?解决思路

2012-06-11 
memcpy将一个字符数组拷贝到另一个中不成功?char rd_buffer[BUFFER_SIZE]char dis_buffer[BUFFER_SIZE]。

memcpy将一个字符数组拷贝到另一个中不成功?
char rd_buffer[BUFFER_SIZE];
char dis_buffer[BUFFER_SIZE];
。。。
int counter = 0;
  counter_1 = read(fd,dis_buffer, sizeof(dis_buffer));//读数据
   
  memcpy(rd_buffer+counter,dis_buffer,counter);
  counter += counter_1;

打印rd_buffer,没有反应,当改成memcpy(rd_buffer,dis_buffer,counter);就可以打印了,
现在我的问题memcpy为什么会出现这种情况,请赐教,谢谢!

[解决办法]
你把dis_buffer的前counter字节拷贝到rd_buffer往后的counter所指内存地址上
然后打印rd_buffer这个地址上的东西,你觉得可以打出来吗?
[解决办法]
数组越界。
[解决办法]
字符拷贝。尽量使用strcpy函数拷贝。
[解决办法]
memcpy(rd_buffer+counter,dis_buffer,counter);从第counter个位置拷贝,所以要输出也要从counter输出才行,counter以前的可能是乱码,也可能是\0,所以不行
memcpy(rd_buffer+counter,dis_buffer,counter);从第0个位置拷贝,所以没问题

热点排行