[问题] 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