……
N=10;
……
Complex **X;
X=new Complex *[N];
for(i=0;i<N;i++)
{X[i]=new Complex[N];}
…………
getchar();
for(i=0;i<N;i++)
{delete []X[N];}
delete []X;
我的程序如上,其中Complex是我定义的一个结构体,动态地分配两个二维数组,然后进行数字计算,程序运行到getchar时调试正常,没有任何问题,继续运行时,出了问题。VS2008:
NRM.exe 中的 0x102d31ea (msvcr90d.dll) 处未处理的异常: 0xC0000005: 读取位置 0xfdfdfdf1 时发生访问冲突。
我在调试时也出现过类似的错误,是因为我对动态数组的赋值维数超过了动态分配的维数。而此时我只是建立多少删多少,为什么会出问题呢?应如何改正?谢谢。
参考资料:/