当出现你正确的释放指针,但是报错的时候,可以进行尝试看看 是否 访问越界,要是访问越界,会出现释放失败的情况,举个例子,看看下面的情况,会出现什么错误?
int **data=new int *[4]
for(int i=0;i<4;++i)
{
data[i]=new int [5];
}
data[0][10]=1;
for(int i=0;i<4;++i)
{
if(data[i]!=NULL)
{
delete []data[i];
data[i]=NULL;
}
}
if(data!=NULL)
{
delete[] data;
data=NULL;
}
当你访问越界的时候,指针释放的内存就会出现错误!!!