我正在嘗試使用基礎鏈接列表結構進行堆棧。鏈接列表實現問題
也許我錯了,但我遇到了remove()函數的問題。
int Stack::remove(){
node* victim = new node;
int popped;
popped = top->element;
victim = top;
top = victim->next;
delete victim;
return popped;
}
我得到的glibc dectecting
雙重釋放或腐敗(出);
由於我正在爲受害者分配新的內存,我不必刪除受害者,還是我不必擔心的事情?
沒有意義的是分配內存或使用新的受害者節點。記住一個指針只是一個參考,所以只要指向列表的頭部即可。保存數據值,將列表頭移動到下一個元素(可能要檢查NULL),然後刪除最初指向頭的臨時指針。這意味着你已經彈出了它。 – JonH 2010-01-30 02:47:24