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

看板C_and_CPP (C/C++)作者 (解藥)時間8年前 (2017/07/09 20:59), 編輯推噓4(4014)
留言18則, 9人參與, 最新討論串1/1
各位大大好~ 新手發問 c語言使用指標 初始化後並使用 在程式結束時要釋放其記憶體,不然記憶體會一直被佔用 但如果在除錯的時候,設定中斷點並且按下stop 而且沒有執行到delete釋放指令的話 使用的記憶體有被釋放嗎??? 如果這樣的話每除錯一次不就一直在跟os要記憶體使用 到最後不就爆掉了? 以上,感謝各位 也望解答 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.102.167.128 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1499605182.A.042.html

07/09 21:00, , 1F
os會自己收回來
07/09 21:00, 1F

07/09 21:38, , 2F
所以在程式開發階段,都有人會幫你擦屁股的意思
07/09 21:38, 2F

07/09 23:05, , 3F
其實不是開發階段也會有人幫忙擦屁股啦, 除非是古早的
07/09 23:05, 3F

07/09 23:06, , 4F
native mode 之類才會出事, 但結束前 free 還是好習慣
07/09 23:06, 4F

07/09 23:53, , 5F
每個程式的記憶體管理都是獨立的
07/09 23:53, 5F

07/10 00:59, , 6F
程式結束的時候佔用的記憶體就會被作業系統收拾乾淨
07/10 00:59, 6F

07/10 00:59, , 7F
程式執行結束之後作業系統會幫你清垃圾
07/10 00:59, 7F

07/10 00:59, , 8F
坦白說不是長時間執行的程式我都懶得乖乖釋放
07/10 00:59, 8F

07/10 00:59, , 9F
爆掉的時候應該是指程式要執行很久 沒有結束的時刻
07/10 00:59, 9F

07/10 10:06, , 10F
如果要寫成daemon時候小心一點就好
07/10 10:06, 10F

07/10 11:12, , 11F
現在的OS都能做到app結束回收記憶體 這也是為什麼你沒
07/10 11:12, 11F

07/10 11:12, , 12F
辦法拿到真實位置記憶體的原因(可想成是paging的延伸)
07/10 11:12, 12F

07/10 11:16, , 13F
但是你寫kernel space的時候你說的問題就會產生了
07/10 11:16, 13F

07/10 22:25, , 14F
隨手free是好習慣,尤其寫網路server 之類的,如果一條th
07/10 22:25, 14F

07/10 22:25, , 15F
read就memory leak一次,很快的OOM killer之類的機制就會
07/10 22:25, 15F

07/10 22:25, , 16F
出面把你程式結束掉惹
07/10 22:25, 16F

07/11 20:43, , 17F
其實抓valgrind去跑一跑就好了,我經驗來講這種小失誤
07/11 20:43, 17F

07/11 20:43, , 18F
很難免,尤其exception....
07/11 20:43, 18F
文章代碼(AID): #1POYY-12 (C_and_CPP)
文章代碼(AID): #1POYY-12 (C_and_CPP)