這一篇其實沒什麼!! 只是要告訴大家一個free的重要觀念
也可能我是新手,才會遇到這種問題
因為我在這邊卡了很久,不知道為什麼資料透過socket傳送出去後,資料就進不來了
我們知道可以用佇列來儲存資料,通常會用malloc來產生每一個節點
並把前端節點與後端節點指標指向它(如果不知道佇列是什麼的就直接跳綠色的字看)
但當資料只剩下一個的時候,我們會用free的方式將最後一個節點記憶體釋放
但這時的後端指向的記憶體並沒有隨之釋放
因為free函數僅僅是告訴操作系統,這一塊記憶體被釋放了,可以用來作其它用途
但是,由於你沒有重新對這塊記憶體進行寫入,所以記憶體中的變量數值並沒有發生變化。
所以後端節點指向的值不變,恆會一直保有一個節點
因此最好的方式記得當最後一個節點free之後,並把後端節點也指向NULL
Place your comment