最近做了一道題目,涉及到釋放鏈表節點的操作,所以程式除錯的時候仔細觀察了一下,以下為我寫的釋放所有節點的函式:
void delall(list* head)
{
if(head==NULL)
return;
list* node= head;
while(node->next!=NULL)
{
list* next= node->next;
delete node;
node=next;
}
head=NULL;
}
有一個疑問 這樣出來,盡管每個節點指向的記憶體釋放了,但是節點本身的指標還在,除了首節點指向NULL,其他都是原來的地址,這個要怎么解決?
uj5u.com熱心網友回復:
一個指標變數跟一個int變數有區別嗎?只不過一個存地址、一個存整數,如果是在堆疊上分配的,函式回傳的時候就釋放了。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/60160.html
標籤:基礎類
