📅  最后修改于: 2023-12-03 15:38:31.410000             🧑  作者: Mango
在C++中,我们可以使用指针来创建动态二维数组。一个二维数组可以看作是一个由若干个一维数组组成的数组。因此,在创建二维数组之前,我们需要先创建一维数组。
我们可以使用以下代码来创建一个一维数组:
int* arr = new int[size];
其中,size
是数组的长度,arr
是指向数组的指针。这段代码将 size
个 int 类型的内存空间分配给 arr
指向的数组。
对于二维数组,我们可以看作是一个由第一维数组及其元素组成的数组。我们可以使用以下代码来创建二维数组:
int** arr = new int*[row];
for(int i = 0; i < row; ++i)
arr[i] = new int[col];
其中,row
是二维数组的行数,col
是二维数组的列数,arr
是指向二维数组的指针。这段代码将会创建一个 row
行 col
列的二维数组。
该段代码中,第一条语句将会创建一个指向一维数组的指针数组,其长度为 row
。第二条语句中,由于 arr[i]
是一个一维数组的指针,因此我们需要再次使用 new
关键字动态分配大小为 col
的 int 数组,将其赋值给 arr[i]
。
我们可以使用以下代码初始化一个二维数组:
int** arr = new int*[row];
for(int i = 0; i < row; ++i)
{
arr[i] = new int[col];
for(int j = 0; j < col; ++j)
arr[i][j] = val;
}
其中,row
是二维数组的行数,col
是二维数组的列数,arr
是指向二维数组的指针,val
是二维数组中每个元素的初始值。该段代码会将二维数组的每个元素都赋值为 val
。
需要注意的是,在使用完二维数组后,我们需要使用 delete[]
释放其所占用的内存空间:
for(int i = 0; i < row; ++i)
delete[] arr[i];
delete[] arr;
以上就是在 C++ 中如何创建动态二维数组的介绍。