| |
由于之前程序里的一个BUG,导致返回的临时对象里的char*成员指向的内存其实已经被释放了。

当我使用这个临时对象给另外一个新对象赋值时,首先需要给新对象申请空间,我惊奇的发现,新new申请的内存地址和临时对象的那个char*成员的值相同。

想了一想,猜测是以下原因:由于new申请的内存都在堆中,在距离上次释放内存之后没有新申请内存,所以再次申请内存的时候按顺序申请,自然地址从上次释放的起始位置开始,自然和之前的那个指针值相等。

看似巧合,实际有必然性。
by snooda | 分类: 默认分类 | 评论(0) | 引用(0) | 阅读(1917)
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]