作者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
1F:推 timrau:重新new了一次 会跑到哪里就不一定了 12/04 12:44
2F:推 ric2k1:calling function 除了 local variable 之外, 还有 12/04 13:12
3F:→ ric2k1:function 的 return address, flags, 等等, 都要推到 stack 12/04 13:13