Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Visual Studio停止调试程序时是否会自动清理内存?_C++_Visual Studio_Memory Leaks - Fatal编程技术网

C++ Visual Studio停止调试程序时是否会自动清理内存?

C++ Visual Studio停止调试程序时是否会自动清理内存?,c++,visual-studio,memory-leaks,C++,Visual Studio,Memory Leaks,我正在使用Visual studio 2015,但我更喜欢每个版本的通用答案 如果我的代码存在内存泄漏,并且在Visual Studio(F5)中以退出值=0运行:- (Q1)在调试模式下,它真的会泄漏吗 (Q2)在释放模式下,它真的会泄漏吗 如果我的代码保留了一些堆内存,则在我的代码能够适当释放内存之前,我通过按下红色矩形按钮(停止)来终止它:- (Q3)在调试模式下,它真的会泄漏吗 (Q4)在释放模式下,它真的会泄漏吗 我注意到我的程序在几次运行->红色按钮后逐渐变慢,重新启动计算机

我正在使用Visual studio 2015,但我更喜欢每个版本的通用答案

如果我的代码存在内存泄漏,并且在Visual Studio(
F5
)中以退出值=0运行:-

  • (Q1)在调试模式下,它真的会泄漏吗
  • (Q2)在释放模式下,它真的会泄漏吗
如果我的代码保留了一些堆内存,则在我的代码能够适当释放内存之前,我通过按下红色矩形按钮(
停止
)来终止它:-

  • (Q3)在调试模式下,它真的会泄漏吗
  • (Q4)在释放模式下,它真的会泄漏吗
我注意到我的程序在几次
运行->红色按钮后逐渐变慢,重新启动计算机后又变快了。这可能只是我的想象-或GPU相关

但是,我还记得有一个案例,即多次运行
run->allocate 10MB->red button
,但对以后运行的性能没有任何影响。

当程序退出时,无论它如何退出,操作系统都会释放程序的内存。


当程序退出时,无论它以何种方式退出,操作系统都将释放程序的内存。

当程序关闭时,操作系统将回收它分配的任何内存。@DeiDei我可能会严重误解某些内容。你是认真的吗?如果我分配
char*x=newchar[10000]
而不释放->则在释放模式下运行。在my
.exe
存在后,10000字节将释放回操作系统?如果是这样,从长远来看,我的程序中的每一个内存泄漏都不会影响操作系统吗?所以,重新启动计算机与内存泄漏完全无关?调试或释放模式并不重要。当程序终止时,它将被释放。@cpp初学者,这是正确的。操作系统知道进程分配了什么内存,并将在进程退出时回收该内存(如果仍然分配)。内存泄漏只会在进程处于活动运行状态时影响操作系统。@Remy Lebeau非常感谢。我对它的误解已经超过5年了。。。指责我的计算机速度变慢是因为我刚刚关闭的程序XXX内存泄漏。当程序关闭时,操作系统将回收它分配的所有内存。@DeiDei我可能会严重误解某些内容。你是认真的吗?如果我分配
char*x=newchar[10000]
而不释放->则在释放模式下运行。在my
.exe
存在后,10000字节将释放回操作系统?如果是这样,从长远来看,我的程序中的每一个内存泄漏都不会影响操作系统吗?所以,重新启动计算机与内存泄漏完全无关?调试或释放模式并不重要。当程序终止时,它将被释放。@cpp初学者,这是正确的。操作系统知道进程分配了什么内存,并将在进程退出时回收该内存(如果仍然分配)。内存泄漏只会在进程处于活动运行状态时影响操作系统。@Remy Lebeau非常感谢。我对它的误解已经超过5年了。。。因为我刚刚关闭的程序XXX内存泄漏,我的电脑速度变慢了。你能提供一些参考吗?这个答案超出了我的想象。@cpp初学者:重新启动计算机会将所有内存重新设置为一块空白。重新启动计算机不是内存泄漏的解决方案,但是如果在可用内存运行之前不退出泄漏进程,则严重泄漏可能会导致内存泄漏out@RemyLebeau可以解释很多事情,非常感谢。你能提供一些参考吗?这个答案超出了我的想象。@cpp初学者:重新启动计算机会将所有内存重新设置为一块空白。重新启动计算机不是内存泄漏的解决方案,但是如果在可用内存运行之前不退出泄漏进程,则严重泄漏可能会导致内存泄漏out@RemyLebeau可以解释很多事情,非常感谢。