指向同一对象的多个原始指针

时间:2017-05-23 22:38:03

标签: c++ pointers

我有多个指针指向同一个对象。

表格中的每个节点如下所示:

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);

1 个答案:

答案 0 :(得分:2)

  

然而,由于我尝试访问已经删除的部分内存,因此我在整个地方都会出现内存泄漏。

这不是内存泄漏。当您不再指向已分配的内存时,内存会泄漏,因此您无法再将其释放。

您所描述的是无效的内存访问,它具有未定义的行为。

如果没有mcve,就不可能知道你的错误在哪里,但是我的水晶球告诉我你可以通过使用智能指针来避免它。