[求助]关于动态申请二维数组
WORD* BufArry1;
WORD* BufArry2;
BufArry1=new WORD[Bound2];
BufArry2=new WORD[Bound1][Bound2]; //此处出错error C2540: non-constant expression as array bound
Bound1、Bound2都是Int型变量,其实就是动态申请数组,为什么一维不出错,而二维会出错呢?
怎么解决?
WORD* BufArry1;
WORD* BufArry2;
BufArry1=new WORD[Bound2];
BufArry2=new WORD[Bound1][Bound2]; //此处出错error C2540: non-constant expression as array bound
Bound1、Bound2都是Int型变量,其实就是动态申请数组,为什么一维不出错,而二维会出错呢?
怎么解决?
for(i=0; i<Bound1; i++)
delete[] BufArry[i];//能不能换成:delete BufArry[i];
delete[] BufArry;//能不能换成:delete BufArry;
请注意注释中的部分!谢谢关注!
二楼的办法是正确的,因为那个贴子是我发的,注释那里不可以换。因为BufArry[i]里面的元素都是指向一行元素的指针,所以一定要 delete [] BufArry[i] ,第二个注释也一样
谢谢你们!
有一点还不明白,值定大点不就浪费内存了吗?
我要申请最大为n×2048的WORD型二维数组,n的范围为1——10000
他其实没在用数组而是直接对指针操作,所以第二维也随便。