对于一个类的赋值,我需要为我创建的链表创建一个析构函数。我做了一个叫做MakeEmpty
的函数,我在析构函数里调用。它正确编制的第一次,但现在我得到瞬间崩溃,并错误说:如何正确地销毁链表?
表达:_BLOCK_TYPE_IS_VALID(pHead-> nBlockUse)
有人可以帮助我弄清楚什么是错的?我运行了调试器并指出错误出现在代码中的位置。
这是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;
}
好友,您正在删除“p”,然后赋值给它...这可能是怎么回事! – Swanand
@SwanandPurankar我想删除p指向的节点,然后将p前进到下一个节点,删除那个,直到它们全部消失为止 – Mike
是的,我们知道了...但是您错过了一个小那里的事情......仔细检查你的代码......不要期待答案......这是你的功课! – Swanand