作者boiq (olo)
看板EE_DSnP
標題[問題] new之後馬上delete(已解決)
時間Fri Dec 21 19:09:28 2012
已解決
用 ptr = new(ptr2) xxclass;
可以保證ptr跟ptr2位置一樣
(大小不一樣就不保證....XD)
===========================================
我又來連問問題了
如果一個BaseClass的pointer先被new過了
BaseClass* ptr = new Child1Class;
再把它delete掉
delete ptr;
然後再重新new另一種child給他
ptr = new Child2Class;
這樣子記憶體位置會一定一樣嗎?
如果兩個Childclass的sizeof大小一樣的話@@
還是不同的compiler會有不同的可能性@@
如果會不一樣的話那只好改寫了orz
感謝~~~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.25.108
1F:推 keyboardle:如果你一定要一樣可以試試new(ptr) Child2Class 12/21 19:31
2F:→ keyboardle:但我不覺得有必要用這樣的寫法.你的用途是? 12/21 19:31
3F:→ boiq:感謝我試試看,我的用途是把UNDEF刪掉new AIG 上去 12/21 20:02
4F:→ boiq:可是如果pointer位置會不一樣的話那麼fanin/out的connect會斷 12/21 20:03
※ 編輯: boiq 來自: 140.112.25.108 (12/21 20:24)
5F:推 steve1012:感覺可以全部存base class 的ptr吧~ 12/21 21:59
6F:→ steve1012:就不用煩惱了 12/21 21:59
7F:推 ric2k1:記憶體位置應該不一定會一樣哦! 畢竟記憶體是系統配置的, 12/21 22:28
8F:→ ric2k1:這樣的假設會很危險!! 12/21 22:28