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个位置拷贝,所以没问题