我有多个指针指向同一个对象。
表格中的每个节点如下所示:
myObjects
从文件中读取数据并存储对象:
var myObjects = ['a', 'b', 'c']
myObjects.forEach(o => this[o].doThis())
插入表格
struct Node
{
Object * objPtr;
Node * next;
}
每个对象都有多个键会发生什么,所以我想多次将它添加到表中(添加指针)。但是,由于我尝试访问已经删除的部分内存,因此我在整个地方都会出现内存泄漏。我想知道析构函数是否搞砸了,还是插入(我没有正确分配)? 强文
UPD
Object * currObj;
currObj = new Object(data);
insert(*currObj);
答案 0 :(得分:2)
然而,由于我尝试访问已经删除的部分内存,因此我在整个地方都会出现内存泄漏。
这不是内存泄漏。当您不再指向已分配的内存时,内存会泄漏,因此您无法再将其释放。
您所描述的是无效的内存访问,它具有未定义的行为。
如果没有mcve,就不可能知道你的错误在哪里,但是我的水晶球告诉我你可以通过使用智能指针来避免它。