我想學習C++,並且我有一個小的困惑。從C++中的鏈表中刪除一個節點
我從中學習的文本告訴我,如果要刪除const T&
類型的節點,我應該先創建該節點類型的新指針,然後使用內置的C++ delete[]
將其刪除。但是,如果我只是將待刪除節點的前一個元素設置爲要刪除的節點的下一個元素的鏈接,會發生什麼?例如:
*p = node.previous;
p-> next = node.next;
或者這會導致內存泄漏?
我很困惑,因爲我讀別的地方永遠,永遠刪除指針慎之又慎,但我一起工作的示例代碼,沿着線的東西:
Node<T> *p = node-to-be-deleted;
delete p;
什麼是最好的方式刪除節點?
那麼我的第一個實現,我只是取消引用它的指針會導致memleak? –
是的,雖然你可能意思是'p',而不是'* p'。這是第一個響應谷歌搜索*鏈接列表示例C++ *:http://www.cprogramming.com/tutorial/lesson15.html只要繼續前進,挖掘到這種語言,祝你好運! –
我這麼認爲...你能檢查我所做的修改嗎? –