[問題] c 指標釋放記憶體

作者: DaiJyou (解藥)   2017-07-09 20:59:39
各位大大好~
新手發問
c語言使用指標 初始化後並使用
在程式結束時要釋放其記憶體,不然記憶體會一直被佔用
但如果在除錯的時候,設定中斷點並且按下stop
而且沒有執行到delete釋放指令的話
使用的記憶體有被釋放嗎???
如果這樣的話每除錯一次不就一直在跟os要記憶體使用
到最後不就爆掉了?
以上,感謝各位 也望解答
作者: grayStone (灰色石頭)   2017-07-09 21:00:00
os會自己收回來
作者: s4300026 (s4300026)   2017-07-09 21:38:00
所以在程式開發階段,都有人會幫你擦屁股的意思
作者: uranusjr (←這人是超級笨蛋)   2017-07-09 23:05:00
其實不是開發階段也會有人幫忙擦屁股啦, 除非是古早的native mode 之類才會出事, 但結束前 free 還是好習慣
作者: bluesoul (忙死你老爸)   2017-07-09 23:53:00
每個程式的記憶體管理都是獨立的
作者: james732 (好人超)   2017-07-10 00:59:00
程式結束的時候佔用的記憶體就會被作業系統收拾乾淨
作者: moebear (萌熊)   2017-07-10 00:59:00
程式執行結束之後作業系統會幫你清垃圾
作者: Qbsuran (Qbsuran)   2017-07-10 10:06:00
如果要寫成daemon時候小心一點就好
作者: Killercat (殺人貓™)   2017-07-10 11:12:00
現在的OS都能做到app結束回收記憶體 這也是為什麼你沒辦法拿到真實位置記憶體的原因(可想成是paging的延伸)但是你寫kernel space的時候你說的問題就會產生了
作者: askacis (ASKA)   2017-07-10 22:25:00
隨手free是好習慣,尤其寫網路server 之類的,如果一條thread就memory leak一次,很快的OOM killer之類的機制就會出面把你程式結束掉惹
作者: Killercat (殺人貓™)   2017-07-11 20:43:00
其實抓valgrind去跑一跑就好了,我經驗來講這種小失誤很難免,尤其exception....

Links booklink

Contact Us: admin [ a t ] ucptt.com