作者DaiJyou (解藥)
看板C_and_CPP
標題[問題] c 指標釋放記憶體
時間Sun Jul 9 20:59:39 2017
各位大大好~
新手發問
c語言使用指標 初始化後並使用
在程式結束時要釋放其記憶體,不然記憶體會一直被佔用
但如果在除錯的時候,設定中斷點並且按下stop
而且沒有執行到delete釋放指令的話
使用的記憶體有被釋放嗎???
如果這樣的話每除錯一次不就一直在跟os要記憶體使用
到最後不就爆掉了?
以上,感謝各位 也望解答
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.102.167.128
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1499605182.A.042.html
1F:→ grayStone: os會自己收回來 07/09 21:00
2F:推 s4300026: 所以在程式開發階段,都有人會幫你擦屁股的意思 07/09 21:38
3F:→ uranusjr: 其實不是開發階段也會有人幫忙擦屁股啦, 除非是古早的 07/09 23:05
4F:→ uranusjr: native mode 之類才會出事, 但結束前 free 還是好習慣 07/09 23:06
5F:→ bluesoul: 每個程式的記憶體管理都是獨立的 07/09 23:53
6F:推 james732: 程式結束的時候佔用的記憶體就會被作業系統收拾乾淨 07/10 00:59
7F:→ moebear: 程式執行結束之後作業系統會幫你清垃圾 07/10 00:59
8F:→ james732: 坦白說不是長時間執行的程式我都懶得乖乖釋放 07/10 00:59
9F:→ moebear: 爆掉的時候應該是指程式要執行很久 沒有結束的時刻 07/10 00:59
10F:推 Qbsuran: 如果要寫成daemon時候小心一點就好 07/10 10:06
11F:→ Killercat: 現在的OS都能做到app結束回收記憶體 這也是為什麼你沒 07/10 11:12
12F:→ Killercat: 辦法拿到真實位置記憶體的原因(可想成是paging的延伸) 07/10 11:12
13F:→ Killercat: 但是你寫kernel space的時候你說的問題就會產生了 07/10 11:16
14F:推 askacis: 隨手free是好習慣,尤其寫網路server 之類的,如果一條th 07/10 22:25
15F:→ askacis: read就memory leak一次,很快的OOM killer之類的機制就會 07/10 22:25
16F:→ askacis: 出面把你程式結束掉惹 07/10 22:25
17F:→ Killercat: 其實抓valgrind去跑一跑就好了,我經驗來講這種小失誤 07/11 20:43
18F:→ Killercat: 很難免,尤其exception.... 07/11 20:43