C/C++堆区创建二维数组的正确方式

2025-11-20 14:54:32

1、笔者所要介绍的也是这种方法的变体,与这方法稍有不同,下文会进行详细讲解。

C/C++堆区创建二维数组的正确方式

2、如图所说,这种创建方式存在堆区申请的空间不连续的问题,并且初始化很麻烦,不予以推荐。(解释:这里通过创建指针数组的方式,先创建一个存放指针的数组,通过for循环依次创建一维数组(没错,就是一维数组),一维数组的数组名(也就是指针)放入最先创建的指针数组内,完成创建),至于为什么可以用二维数组的方式进行访问,读者可以这么理解:首先对于d这个指针数组,d[i]表示第一次解指针,之后d[i][n]经过第二次解指针,便可以访问到存储的数据了。

C/C++堆区创建二维数组的正确方式

3、第三种方法确实可以解决前两种创建方式的缺点,但是也有一个很明显的缺点,对堆区数组数据进行初始化很麻烦,原理和第二种很相似,区别在于其将指针数组放在了堆区,而在栈区留下一个二级指针以供访问。

C/C++堆区创建二维数组的正确方式

1、简而言之,也就是在第一种方式上加了后面的初始化内容。

C/C++堆区创建二维数组的正确方式

2、原理解释:其实很好理解,由于C语言运算符的优先原则 *arr 须括起来,将此标识符理解为指针,后面接上[3] 也就变成了指针数组,new int[3][3]这句话是直接在堆区开辟一块3X3的空间,后面接上初始化内容,便完成了数组的创建及初始化。

3、效果展示:

C/C++堆区创建二维数组的正确方式

C/C++堆区创建二维数组的正确方式

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢