看板 C_and_CPP 關於我們 聯絡資訊
上課的時候 如果程式裡有寫到鏈節串列 老師都會叮嚀我們要記得把所有節點free掉 要不然一直test程式會一直吃掉記憶體 除非重開機 reboot (我同學說的,不知對否....) 那麼我們使用int float char .........等等的變數呢? 為什麼不需要特別把它們free掉呢? 我自己猜是因為當run 結束之後IDE會自動把這些保留字型態的變數free掉 不知道對不對..... 此外 我又想到 以後開發程式出來後並沒有IDE 當程式關掉之後並沒有東西幫我們free掉變數 請問是否要自己養成習慣 在程式結束後把所有變數free掉?? 如果猜錯的話就見笑了 Orz.... --  ̄ ̄ 幹你媽的洨王子 國家現在需要你 ⊙⊙ 歡迎加入 偉大消波塊的行列 @m◥ ψQSWEET ◢◣ 100個不嫌多 1個不嫌少 3Q!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.134.115.251
nowar100:你可以先了解一下stack和heap上的差異 10/22 19:27
nowar100:自動變數是長在前者 自己手動要的變數是長在後者 10/22 19:28
nowar100:stack會自己消長 heap你不還給OS就會一值占用到程式結束 10/22 19:29
QQ29:也不用重開機吧 關掉程式就好了~ 10/22 19:30
chchwy:有malloc才要free 10/22 19:31
joefaq:malloc是跟OS要一塊記憶體來用 所以你程式結束OS會釋放 10/22 20:57