2014-02-09 33 views
-2

這裏是處理:的memcpy工作不正常

void* target_adrr = //adress to copy data to 
void* source_adrr = //adress to copy data from 
unsigned long data_size = //the size in bytes 
memcpy(target_adrr, source_adrr, data_size); 

一號運行的代碼工作。在第二輪運行中,其他數據會發生變化,這是不可預料的。我注意到memcpy返回一些地址。該地址與我的目標地址沒有關係。

我很困惑,有人可以幫我嗎?

+0

在猜測,你得到了'data_size'錯誤 –

+0

不,它是非常正確的。 memcpy返回什麼類型的地址? –

+3

可能是任何東西。您設法省略了所有關鍵細節。 – juanchopanza

回答

1

函數調用之間的返回值是不同的嗎?

MSDN,未定義的行爲的可能性是:

如果源和目的地的重疊,memcpy的行爲是未定義的。使用memmove來處理重疊區域。

聽起來像你的。是嗎?