看板 EE_DSnP 關於我們 聯絡資訊
原文恕刪,那我再打破沙鍋問到底,我寫了一個程式如下: void f(int*& p){ p = new int(20); delete p ; } int main () { int* p = new int ; cout << p << endl ; f(p); cout << p << endl ; return 0 ; } 執行出來第一個 p 是0x3d3748 第二個 p 0x3d37b0 為何差了104 byte? p不是指標只佔stack memory 4個byte而已嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.4.240
timrau:重新new了一次 會跑到哪裡就不一定了 12/04 12:44
ric2k1:calling function 除了 local variable 之外, 還有 12/04 13:12
ric2k1:function 的 return address, flags, 等等, 都要推到 stack 12/04 13:13