如何使用new运算符在C++中动态声明二维数组
在 C/C++ 中,多维数组可以简单理解为数组的数组。多维数组中的数据以表格形式(按行主序)存储。下面是声明 N 维数组的一般形式:
N维数组的语法:
data_type array_name[size1][size2]….[sizeN];
data_type: 要存储在数组中的数据类型。
在这里,data_type 是有效的 C/C++数据类型。
array_name: 数组的名称
size1、size2、…、sizeN: 维度的大小
2D 数组是一维数组的数组。
2D 数组的语法:
data_type array_name[x][y];
data_type: 要存储的数据类型。有效的 C/C++ 数据类型。
下面是二维数组的图示表示:
有关多维数组和 2D 数组的更多详细信息,请参阅C++中的多维数组文章。
问题: 给定一个 2D 数组,任务是在 C++ 中使用 new 动态分配二维数组的内存。
解决方案: 使用以下值声明一个 3 行 4 列的 2D 数组:
注意: 这里 M 是行数, N 是列数。
方法一: 使用单个指针——在此方法中,分配了大小为 M*N 的内存块,然后使用指针算术访问内存块。下面是相应程序:
输出:
方法二: 使用指针数组:这里创建了一个指针数组,然后对每个内存块进行操作。下面是说明该概念的图示:
下面是相应的程序:
输出:
输出: