尝试破坏链接列表时出错?

时间:2012-06-11 03:52:18

标签: c++ linked-list

我试图为创建的链表列表的对象实现析构函数。我创建了一个名为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;
}

1 个答案:

答案 0 :(得分:1)

你是否服从班上的rule of three?该错误听起来像是缺少复制构造函数或复制赋值运算符。