看板 C_and_CPP 關於我們 聯絡資訊
在動態配置記憶體時,C用malloc(),C++用new 而不管是在網路還是書籍上,都會強調必須在生命週期結束後將記憶體歸還回去 那麼如果是在程式crash或是我們手動將程式結束掉的情況下 這些動態配置的記憶體是os回收掉還是C&C++做回收? ----- Sent from JPTT on my Asus ASUS_I01WD. -- 標題 [洽特] 台灣雞翅國際股份有限公司?? 這麼奇特的名字是怎麼來的呢? 有人有八卦嗎????
sweetmiki: 給你的雞雞一雙翅膀 跨國界尻槍09/07 19:42
qqq3892005: 雞翅→G翅→G WING→GG WIN→GG double IN→GGININ 09/07 19:48
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.12.44.76 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1568361730.A.0EF.html
b0920075: os 09/13 17:45
Schottky: Crash 由 OS 收屍,手動結束有可能程式自己會處理後事 09/13 20:17
Schottky: 當然程式如果沒有處理/來不及處理還是 OS 會收拾殘局 09/13 20:17
Schottky: 具體的說就是用 atexit() 設定「辦後事」的 function 09/13 20:22
Schottky: GUI 程式也可以設定按 X 或被 OS 通知結束時的行為 09/13 20:23
Schottky: 那有沒有不會收屍的OS?有啊,程式crach就整台電腦當機 09/13 20:28
EricTCartman: 不當機還是會有OS不幫忙收拾的狀況 有些OS就是沒做 09/13 20:34
stupid0319: windows在O3層虛擬記憶體定址的話,OS直接就收掉 09/13 22:40
stupid0319: 如果是寫驅動程式的話,就要很小心了 09/13 22:41
ando5566: 回答問題:由程式回收 09/14 12:23
cphe: OS會收,通常會考慮leak的狀況是,很多程式其實是一直在背 09/15 18:51
cphe: 景跑不會結束,如果不free就會一直吃memory ,直到被termina 09/15 18:51
cphe: te 09/15 18:51
arshuan: 你一般user space的程式在執行就是OS allocate 一塊記憶 11/17 14:18
arshuan: 體給你 你不管怎麼用不管靜態或動態配置都不可能超出那塊 11/17 14:18
arshuan: , 程式關閉後OS自然把整塊記憶體回收 所以不用擔心會有 11/17 14:18
arshuan: 任何memory leak影響到整個系統 11/17 14:18
arshuan: 我上面講的可能不太對 應該說你程式跟OS要過多少記憶體OS 11/17 17:03
arshuan: 都有紀錄 所以程式關閉時OS一定會把所有配給該程式的記憶 11/17 17:03
arshuan: 體收回 但是如果你程式沒關閉又一直要記憶體 OS當然不會 11/17 17:03
arshuan: 去回收 才會導致所謂的memory leak 11/17 17:03