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

长弓成 2012-03-16 04:10:22
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为什么会出现这种情况,请赐教,谢谢!
...全文
533 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qixing1115 2012-03-16
  • 打赏
  • 举报
回复
memcpy(rd_buffer+counter,dis_buffer,counter);从第counter个位置拷贝,所以要输出也要从counter输出才行,counter以前的可能是乱码,也可能是\0,所以不行
memcpy(rd_buffer+counter,dis_buffer,counter);从第0个位置拷贝,所以没问题
chenkangapple 2012-03-16
  • 打赏
  • 举报
回复
字符拷贝。尽量使用strcpy函数拷贝。
女旺仔 2012-03-16
  • 打赏
  • 举报
回复
数组越界。
fuxiang 2012-03-16
  • 打赏
  • 举报
回复
你把dis_buffer的前counter字节拷贝到rd_buffer往后的counter所指内存地址上
然后打印rd_buffer这个地址上的东西,你觉得可以打出来吗?

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧