[問題] new之後馬上delete(已解決)

作者: boiq (olo)   2012-12-21 19:09:28
已解決
用 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
感謝~~~
作者: keyboardle (朱弟)   2012-02-21 19:31:00
如果你一定要一樣可以試試new(ptr) Child2Class但我不覺得有必要用這樣的寫法.你的用途是?
作者: boiq (olo)   2012-02-21 20:02:00
感謝我試試看,我的用途是把UNDEF刪掉new AIG 上去可是如果pointer位置會不一樣的話那麼fanin/out的connect會斷
作者: steve1012 (steve)   2012-02-21 21:59:00
感覺可以全部存base class 的ptr吧~就不用煩惱了
作者: ric2k1 (Ric)   2012-02-21 22:28:00
記憶體位置應該不一定會一樣哦! 畢竟記憶體是系統配置的,這樣的假設會很危險!!

Links booklink

Contact Us: admin [ a t ] ucptt.com