【问题标题】:Getting error when trying to destruct my linked - list?尝试破坏我的链接列表时出错?
【发布时间】:2012-06-14 00:25:01
【问题描述】:

我正在尝试为 Iv 创建的链表对象实现析构函数。我创建了一个名为 MakeEmpty 的函数,我只是在析构函数中调用了它。它第一次正确编译,但现在,我立即崩溃并显示错误消息:

表达式:_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)

有人可以帮我找出问题所在吗?我运行调试器并指出错误在代码中的位置,但我不知道哪里出了问题。

WORD::~WORD()
{
cout << "Destructor Called"<<endl;

(*this).MakeEmpty();
}

这是 MakeEmpty() 函数

void WORD::MakeEmpty()
{
alpha_numeric *p = (*this).front;

if((*this).IsEmpty())
{
    cout <<"Already empty"<< endl;
    return;
}

while(front != 0)
{
    front = front -> next;
    delete p;//<<<<---DEBUGGER SAYS ERROR HERE
    p = front;
}
return;
}

【问题讨论】:

  • 你在班上遵守三人规则了吗?该错误听起来像您缺少复制构造函数或复制赋值运算符。
  • @FlorianSowade 哦,是的,就是这样,把它作为答案,这样我就可以将其标记为正确

标签: c++ linked-list


【解决方案1】:

你在班上遵守rule of three 了吗?该错误听起来像是您缺少复制构造函数或复制赋值运算符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-05
    • 1970-01-01
    • 2020-08-08
    • 2012-01-15
    • 1970-01-01
    相关资源
    最近更新 更多