C++动态删除数组
C++动态删除数组
很简单
是因为申请的空间没有完全释放,所以才会执行的时候有错
Complex **X; //定义指向Complex指针的指针x;
X=new Complex *[N]; //声请N个Complex指针,然后让x指向它;
for(i=0;i{X[i]=new Complex[N];}//分别使N个指针指向N个complex的对象。
所有的这些个工作等同于:Complex (*X)[N] = new Complex [N][N];
即是定义一个指向有N个元素的行指针X。删除元素:
for (int j = 0; j < 2; ++j)
delete x[j]; //或delete []x[i];都可以的。
你的由于是单个动态申请的内存;
for(i=0;i{delete []X[i];}//删除数组元素,但是你申请的N个行指针还没有删除。
delete []x;//删除n个行指针。
循环删除里的delete[] x[N]要改成delete[] x[i]
相关内容