我正在使用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