免責聲明:這是一項家庭作業,但被問到的問題與實際作業無關。爲什麼一旦返回指針值就改變了?
我必須爲我的一個類實現一個簡單的內存管理器,函數my_malloc在函數返回之前正在返回的值是一個this(例如:0x7fb0049ed410),並且在調用函數中是它另一個(說:0x49ed410)。
my_malloc(unsigned int);
typedef void* Addr;
Addr raddr = (Addr) (memoryHeader + sizeof(header)))
printf("Giving Memory: %p : %p\n", addr, raddr);
return raddr
調用函數();
void* mem = my_malloc(10*sizeof(char));
printf("Calling Function: %p\n", mem);
對不起,如果這是沒有幫助的,但我認爲這可能是足以讓整個問題不給的代碼的所有600和東西線。
警告開始給出:
incompatible integer to pointer conversion assigning to 'void *' from 'int'
什麼是'memoryHeader'?它是堆棧還是堆?我不認爲你需要600行代碼,但可能需要20或30行代碼才能重現**問題描述問題是必要的。 –
如果問題是可重現的,這將有所幫助。即短的,自包含的,正確的(可編譯的),例子會有所幫助; http://sscce.org/ – antak
[如何創建最小,完整和可驗證示例](http://stackoverflow.com/help/mcve) –