void *memcpy(void *str1, const void *str2, size_t n)
char achData[1500], int len, pos;
memcpy(achData, achData + pos, len);
window下:
源内存地址 和 目的内存地址 是同一个数组是, pos 小于len 也就是复制区域会有重合的部分,重复部分不会被覆盖掉。
linux下:(ubunut16.06 g++5.4)
源内存地址 和 目的内存地址 是同一个数组是, pos 小于len 也就是复制区域会有重合的部分, 重复部分数据会被覆盖掉,导致数据丢失。
总结:
调用memcpy函数,同数组之间数据复制,使用以下写法
char achTemp[1500];
memcpy(achTemp, achData + pos, len);
memcpy(achData, achTemp, len);