【发布时间】:2015-05-26 16:05:40
【问题描述】:
我编写了一个非常简单的程序来查看在内存中分配许多对象时它的行为。
它运行良好,只要有足够的时间就会消耗我所有的计算机内存,除非删除 cout 语句。如果没有该行,程序将在初始化后立即退出。为什么?
代码:
#include <iostream>
class Test
{
long long test1[10];
long long test2[10];
long long test3[10];
long long test4[10];
long long test5[10];
};
int main()
{
for (int i = 0; i <= 500000; ++i)
{
new Test;
new Test;
new Test;
new Test;
std::cout << i << "\n"; // Program won't work as desired without this
}
return 0;
}
设置:Visual Studio 2013,发布,x64,静态 Crt
编辑:我在工作的时候匆忙发布了这个问题,很抱歉粗心。现在是正确的。
【问题讨论】:
-
在没有
std::cout声明的情况下,您如何确定该程序“运行良好”?你观察到了什么? -
它运行得很好,直到内存不足 - goo.gl/oEd4uy
-
@DrewDormann 实际上它运行良好 with
cout。我编辑了问题,请看一下。谢谢 -
@IlyaKobelevskiy 不错的工具!好吧,我也在那里检查过。尝试评论第 25 行,你会明白我指的是什么。
标签: c++ compilation console-application compiler-optimization