下面的代码中,按道理说是内存消耗剧增。 可是在加了cout输出之后就不会增加. 这是为什么
#include<iostream>
using namespace std;
int main()
{
while(true)
{
int *p=new int(1000000000);
cout<<"hello !"<<endl;
}
return 0;
}
应该是编译器优化掉了,或者内存分配是懒惰的,你加上
p[1000000000-1]=10;
程序一次循环都不运行就挂了。
有可能是内存申请失败了,请申请后先判断一下 p 是否为空、看看申请是否成功了。
p是否为空,估计后面没有分配内存了。