二维动态指针销毁
我写了一段程序,使用到二维指针动态生成,大概步骤是这样:
double ** D=new double*[n];
for(int i=0;i <n;i++)
D[i]=new double[n-i-1];
.......
//销毁部分
for(i=0;i <n;i++)
delete[]D[i];
delete D;//这句话出错
我跟踪到最后一句话出错,而且我看了D和D[0]指向的内存肯定不一样,去掉最后一句话程序就可以跑了,请教谁能解释一下为什么吗?
[解决办法]
double **D=new double*[patternNum-1];
for(int i=0;i <patternNum;i++)
D[i]=new double[patternNum-i-1];
===>
越界: i=patternNm-1; D[patternNum-1]