欢迎光临散文网 会员登陆 & 注册

二维数组内存空间的动态分配

2023-02-27 22:30 作者:秋名山西  | 我要投稿

在学习算法时,遇到了很多需要动态分配二维数组的的场景。鉴于知识储备比较薄弱,此处进行加强。

首先,强化二维数组的概念:

二维数组,其实就是一维数组。例如:

int a[3][4] = {{1, 3, 5, 7}, {9, 11, 13, 15}, {17, 19, 21, 23}};

其中,a是二维数组名,a数组有三行,即拥有三个行元素,a[0],a[1],a[2];每个行元素又可以看做是拥有四个元素的一维数组。而a[0]、a[1]、a[2]分别是这三个行元素的数组名。

所以在二维数组中,

a[i]=&a[i,0]

a=&(&a[0][0]),即二维数组名是地址的地址,必须经过两次解引用才能取到a[0][0]的值。

下面是生成杨辉三角的算法代码:

这里需要做一下记录:

为二维数组malloc内存空间时,int**这里申请到的是此二维数组需要的行元素的数量对应的内存空间。而*int所申请的空间是每一个行元素有多少个元素组成所需要的内存空间,也可以理解成每个行元素有多少列。

二维数组内存空间的动态分配的评论 (共 条)

分享到微博请遵守国家法律