韌館-LearnHouse

[C/C++]free釋放記憶體函試的重要觀念

這一篇其實沒什麼!! 只是要告訴大家一個free的重要觀念

也可能我是新手,才會遇到這種問題

因為我在這邊卡了很久,不知道為什麼資料透過socket傳送出去後,資料就進不來了

我們知道可以用佇列來儲存資料,通常會用malloc來產生每一個節點

並把前端節點與後端節點指標指向它(如果不知道佇列是什麼的就直接跳綠色的字看)

但當資料只剩下一個的時候,我們會用free的方式將最後一個節點記憶體釋放

但這時的後端指向的記憶體並沒有隨之釋放

因為free函數僅僅是告訴操作系統,這一塊記憶體被釋放了,可以用來作其它用途

但是,由於你沒有重新對這塊記憶體進行寫入,所以記憶體中的變量數值並沒有發生變化。

所以後端節點指向的值不變,恆會一直保有一個節點

因此最好的方式記得當最後一個節點free之後,並把後端節點也指向NULL

2009年3 月 posted by admin in 程式&軟體 and have No Comments

Place your comment

Please fill your data and comment below.
名稱:
信箱:
網站:
您的評論: