memcpy() 函數 window 與 linux 下區別

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);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章