C++内存泄漏问题,求助!
//内存泄露
#include<iostream>
using namespace std;
class Array{
int *p;
int size;
public:
Array(int n=1024){
size = n;
p=new int[size*size];
cout<<"申请内存"<<endl;
}
~Array(){
cout<<"释放内存"<<endl;
// delete [] p;此处注释后,应该产生内训泄漏
}
};
int main(){
long i,j,k;
for(i=0;i<1024;i++)
for(j=0;j<1024;j++)
for(k=0;k<1024;k++)
{
cout<<(i*1024+j)*1024+k<<" ";
Array a;//局部对象,出{}释放,调用析构函数
}
return 0;
}
上题应该存在严重的内存泄漏,但是用VC++6.0编译,运行后,运行速度始终很快,没有任何变化,运行到结束,机器都没死机。我的计算机是4G内存,即2^31,程序循环了2^30次,每次申请2^20,按照理论计算,最多循环2^11次,就把内存全部泄漏了。就要出现死机现象。