Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 大小为8且地址0x59ffbe8在大小为40 free'的块内为8字节的无效读取;D_C++_Memory - Fatal编程技术网

C++ 大小为8且地址0x59ffbe8在大小为40 free'的块内为8字节的无效读取;D

C++ 大小为8且地址0x59ffbe8在大小为40 free'的块内为8字节的无效读取;D,c++,memory,C++,Memory,所以我得到了这些错误,我在网上到处寻找,尝试改变很多东西,但仍然卡住了 我有一个带有ListNode的LinkedList,ListNode有一个指向名为Candidate的对象的指针。 候选人有一个成员,该成员是指向对象协会实例的指针 当我的main结束时,将调用链表的析构函数,并在析构函数中删除所有节点。 由于delete首先调用节点的析构函数,因此在析构函数中的node类中,我执行以下操作: class MyLinkedListNode { public: Candidate *n

所以我得到了这些错误,我在网上到处寻找,尝试改变很多东西,但仍然卡住了

我有一个带有ListNode的LinkedList,ListNode有一个指向名为Candidate的对象的指针。 候选人有一个成员,该成员是指向对象协会实例的指针

当我的main结束时,将调用链表的析构函数,并在析构函数中删除所有节点。 由于delete首先调用节点的析构函数,因此在析构函数中的node类中,我执行以下操作:

class MyLinkedListNode
{
public:
    Candidate *nodeCand;
    MyLinkedListNode *next;
    MyLinkedListNode *prev;
    ~MyLinkedListNode()
    {
        delete this -> nodeCand;
    }

};
Candidate::~Candidate()
{
    delete this -> school ;
}
在候选析构函数中,我这样做:

class MyLinkedListNode
{
public:
    Candidate *nodeCand;
    MyLinkedListNode *next;
    MyLinkedListNode *prev;
    ~MyLinkedListNode()
    {
        delete this -> nodeCand;
    }

};
Candidate::~Candidate()
{
    delete this -> school ;
}
当学校类型为学院*。(每个新候选人都有一个新学院)

以及:

在毁灭者研究所我什么也不做


真的,我不知道我做错了什么。

你们的施工人员在哪里?另外,你不需要
这个->
。你很可能违反了三条规则。我不知道三条规则。。你能再解释一下吗?我建议几个候选人共享同一所学校(指针指向同一个对象),所以你要多次删除一个学院对象。@Daniella:当你听到一个你不认识的词时,查一下。