2015-11-21 42 views
4

我想知道程序崩潰或用戶強制退出將動態分配的內存返回到計算機。或者內存將會泄漏,直到系統重新啓動。C++動態分配內存崩潰或強制退出後返回?

+0

[*在C++中,我需要在關閉程序之前釋放內存*](https://stackoverflow.com/questions/6446428/in-c-do-i-need-to-deallocate-memory-before -close-A-程序) – 5gon12eder

回答

4

大多數現代操作系統會在進程終止後自動回收所有進程內存。通常,這可以通過讓操作系統從其頁表中逐出與該進程相關聯的所有虛擬頁面來實現。因此,除非你有一箇舊的操作系統或者遇到一個奇怪的操作系統錯誤,那麼內存應該被回收。

1

內存將被釋放,動態分配是由操作系統管理的操作。

由於存儲器分頁和分段,每個進程將擁有由操作系統分配的內存頁面的共享,在進程結束時,這些頁面將被標記爲空閒,並且在需要時將被連續的進程重用。