📅  最后修改于: 2023-12-03 14:52:00.266000             🧑  作者: Mango
在 C++ 中,数组的大小必须在编译时确定。然而,在某些情况下,我们需要在运行时动态地声明数组。在这种情况下,我们可以使用 new
运算符来动态地声明数组。
在本文中,我们将学习如何使用 new
运算符在 C++ 中动态地声明二维数组。
C++ 中的二维数组本质上是指针数组,其中每个元素都指向一个一维数组。因此,我们可以使用指向指针的指针来声明二维数组。
下面是一个使用 new
运算符动态声明二维数组的示例:
int **array;
int rows = 3;
int cols = 4;
array = new int*[rows];
for (int i = 0; i < rows; ++i) {
array[i] = new int[cols];
}
在上面的示例中,我们首先声明一个指向指针的指针 array
。然后,我们为 array
分配内存并将其初始化为包含 rows
个指针的数组。最后,我们使用循环为每个指针分配内存并将其初始化为包含 cols
个整数的数组。
要释放动态分配的内存,我们需要执行以下操作:
for (int i = 0; i < rows; ++i) {
delete[] array[i];
}
delete[] array;
在上面的示例中,我们首先使用循环释放每个一维数组的内存,然后释放数组的指针本身的内存。
一旦我们使用 new
运算符动态地声明了一个二维数组,我们可以像使用静态数组一样使用它。例如,要将数组的值打印到控制台上,我们可以执行以下操作:
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
std::cout << array[i][j] << " ";
}
std::cout << "\n";
}
在上面的示例中,我们使用双重循环遍历二维数组的所有元素,并打印每个元素的值。
使用 new
运算符,在 C++ 中动态地声明二维数组很容易。我们可以声明一个指向指针的指针,然后分配内存并将每个指针初始化为指向一个一维数组。我们可以使用动态声明的二维数组执行所有标准数组操作,并使用 delete
运算符释放动态分配的内存。