我想删除单循环链表中的所有节点。但我得到了以下错误:C++循环链接列表 - 删除所有节点
malloc: *** error for object 0x1005068f0: pointer being freed was not allocated
以下是功能:
void StudentLinkList::removeAll() {
StudentData *traversePointer = this->head;
while (this->head != nullptr) {
this->head = this->head->getNext();
delete traversePointer;
traversePointer = nullptr;
traversePointer = this->head;
this->size--;
}
}
我就在这行错误:
delete traversePointer;
我的问题是,为什么traversePointer未分配在while循环如错误所示?
,但你的问题是什么? – user463035818
在一个循环链表中,什么让你认为'this-> head = this-> head-> getNext();'当你回到开始时会工作吗?使用调试器... –
这个错误非常坦率地描述性很强......你应该真的很高兴......我希望我收到这些类型的错误...... – WhiZTiM