admin 管理员组

文章数量: 1184232


2024年4月21日发(作者:ignore token auth)

C++中二维数组的动态分配

C++中一维数组的动态分配十分常用,但C++初学者可能很少想过要使用动态分配的

二维数组,或者自认为二维数组就是这样分配的(至少我自己开始的时候就这样认为):int

m=2, n=3; int** array2D=new int[m][n];。这完全是我们写多了像int n=4; int*

array=new int[n];这样的语句留下的后遗症,纯粹是因为惯性太大刹都刹不住,就像某同

学学完“一二三”要写“万”一样。

事实往往不是这么简单,看下面的正确方法就知道了:

#include

using std::cout;

using std::endl;

int main() {

int i, j;

int m=2, n=3;

//分配行指针数组

int** array2D=new int*[m];

//为每一行分配空间

for(i=0; i

array2D[i]=new int[n];

}

//可以稍微测试一下

for(i=0; i

for(j=0; j

array2D[i][j]=i+j;

}

}

for(i=0; i

for(j=0; j

cout<


本文标签: 数组 分配 惯性