作者suspect1 (嫌犯)
看板EE_DSnP
標題Re: [Q&A] Memory management (lecture 12/01/2006)
時間Mon Dec 4 11:38:12 2006
原文恕刪,那我再打破沙鍋問到底,我寫了一個程式如下:
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