Re: [Q&A] Memory management (lecture 12/01/2006)
※ 引述《ric2k1 (Ric)》之銘言:
: Q:
: ==
: 在昨天上課第二堂一開始講的東西我有點不太清楚想問一下
: 老師有舉個例子
: {
: A* p= new A;
: }
: delete p;
: [call ]
: ~A( );
: 請問一下 這邊想要表達的主旨是什麼
: 是說離開 { } 後 會自動call delete p and then call destructor ?
: 還是 說…
: 還是我還有漏掉什麼? 記得老師是舉兩個來比較
: -------------------------------------------------------
: A:
: ==
: {
: A* p= new A;
: }
: 結束後並不會自動 call "delete p". 只會將 local variable p 還給系統.
: 如果你要將 p 所指的記憶體空間釋放, 你必須 explicitly 呼叫 "delete p",
: 然後他才會去呼叫 p 的 destructor ~p().
我想再請問的是:
A* p = new A ;
cout << p << endl ;
delete p ;
cout << p << endl ;
為何delete掉之後和之前的位址都是一樣的呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.4.240
討論串 (同標題文章)