问题描述
- 指针内存问题。 关于内存释放的。
-
下面的代码中,按道理说是内存消耗剧增。 可是在加了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是否为空,估计后面没有分配内存了。
时间: 2024-11-10 01:11:09