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

看板EE_DSnP作者 (olo)時間11年前 (2012/12/21 19:09), 編輯推噓3(305)
留言8則, 4人參與, 最新討論串1/1
已解決 用 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

12/21 19:31, , 1F
如果你一定要一樣可以試試new(ptr) Child2Class
12/21 19:31, 1F

12/21 19:31, , 2F
但我不覺得有必要用這樣的寫法.你的用途是?
12/21 19:31, 2F

12/21 20:02, , 3F
感謝我試試看,我的用途是把UNDEF刪掉new AIG 上去
12/21 20:02, 3F

12/21 20:03, , 4F
可是如果pointer位置會不一樣的話那麼fanin/out的connect會斷
12/21 20:03, 4F
※ 編輯: boiq 來自: 140.112.25.108 (12/21 20:24)

12/21 21:59, , 5F
感覺可以全部存base class 的ptr吧~
12/21 21:59, 5F

12/21 21:59, , 6F
就不用煩惱了
12/21 21:59, 6F

12/21 22:28, , 7F
記憶體位置應該不一定會一樣哦! 畢竟記憶體是系統配置的,
12/21 22:28, 7F

12/21 22:28, , 8F
這樣的假設會很危險!!
12/21 22:28, 8F
文章代碼(AID): #1Gr4DhZX (EE_DSnP)