如何在C++中动态分配一个三维数组
在C/C++中,多维数组简单地说是指数组的数组。多维数组中的数据以表格形式存储(按行主序存储)。下面是声明 N维数组 的一般形式:
多维数组的语法:
data_type array_name[size1][size2]….[sizeN];
data_type: 数组中存储的数据类型。
这里的data_type是有效的C/C++数据类型。
array_name: 数组名
size1、size2、…、sizeN: 维度的大小
3-D数组是一个双重数组的数组:
3D数组的语法:
data_type array_name[x][y][z];
data_type:要存储的数据类型。有效的C/C++数据类型。
有关多维和三维数组的更多详细信息,请参阅C++中的多维数组文章。
问题: 给定一个三维数组,任务是使用C++中的new动态分配内存。
解答: 下面的方法使用两个有3行4列的二维数组,每个二维数组。其值如下:
X= 2D数组的数量。
Y= 每个2D数组的行数。
Z= 每个2D数组的列数。
方法1: 使用单指针-在此方法中,分配大小为 x*y*z
的内存块,然后使用指针算术访问内存块。下面是相同的程序:
输出:
方法2: 使用三重指针-下面是说明该概念的图表:
以下是相同的程序:
输出: