我想刪除單循環鏈表中的所有節點。但我得到了以下錯誤: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