我的应用程序获取bad_alloc异常。 资源监视器显示由OS(Commit)保留的虚拟内存超过了2G。 但是,进程(工作集)当前正在使用的虚拟内存非常小(在崩溃时它可能在200000 Kb左右)。 如何发生?我注意到,当程序启动时,这两个文件的大小基本相同(Commit提高一点)。但随着时间传递差异的增加,在我看来,因为当第二个内存(工作集)增加时,第一个(提交)也增加。但是当第二个减少时,第一个不会返回。 我使用三台不同的电脑,并且处处都有这种行为。我使用Windows 7,程序是用C++编写的。为什么保留的虚拟内存在当前使用的虚拟内存不增长的同时增长?
什么会导致这样的行为? 谢谢
您正在分配您实际上不用于容量的大型数组。 –