假設我們有以下的C++代碼:C++指針變量的內存泄漏澄清
while(condition)
{
Node* temp = SomeNode->next;
//...
}
destructor()
{
//delete Nodes;
}
這裏temp
是一個本地指針變量和CurrentNode
是一個公共類屬性。公共節點和相關節點在析構函數中被釋放。但是,所有本地作用域指針變量會發生什麼。指針數據類型會佔用一些內存,例如4字節或更多(取決於內存空間),僅用於地址。 這裏,temp
局部變量未初始化與「新」和僅僅是一個指向一些其他節點,在此基礎上,對堆棧或堆上做temp
局部變量?此局部變量是否在退出塊後自動被破壞,或者是動態內存,但仍需要使用delete
。我在某處看到一些代碼沒有使用delete
來釋放並非由new
製作的本地指針。我想確定他是否錯過了釋放變量或者有一些我不知道的其他故事。謝謝。
請注意,儘管您在您的問題中引用了'CurrentNode',您的代碼示例中並未顯示'CurrentNode'。 – Sabuncu
這並不重要。我在說明中澄清了。謝謝。 – Jahan