我正在使用Visual Studio 2015,但我更喜歡每個版本的通用答案。Visual Studio停止調試程序時是否自動清理內存?
如果我的代碼有內存泄露,並將其與退出值= 0的Visual Studio(F5
)內運行: -
- (Q1)在調試模式,它真泄露?
- (Q2)在版本模式下,它會真的泄漏嗎?
如果我的代碼儲備一些堆內存,然後我通過我的代碼前,按下紅色矩形按鈕(stop
)可適當釋放內存終止它: -
- (Q3)在調試模式,它會真的泄漏嗎?
- (Q4)在版本模式下,它會真的泄漏嗎?
我注意到我的程序在幾個run->red button
後逐漸慢下來,並且在重新啓動計算機後又變得更快了。這可能只是我的想象力 - 或與GPU有關。
但是,我還記得run->allocate 10MB->red button
多次的情況,對後續運行的性能沒有任何影響。
當程序關閉時,操作系統將回收它分配的任何內存。 – DeiDei
@DeiDei我可能會誤解一些重要的事情。你真的是這個意思嗎?如果我在沒有發佈的情況下分配'char * x = new char [10000]''然後在發佈模式下運行。在我的'.exe'存在後,10000字節將被釋放回OS?如果是這樣,從我的程序泄漏的每個內存不會影響長期運行的操作系統?因此,重新啓動計算機與內存泄漏無關? – cppBeginner
調試或發佈模式並不重要。當程序終止時它將被釋放。 – DeiDei