📜  如何使用 new运算符在 C++ 中动态声明二维数组(1)

📅  最后修改于: 2023-12-03 14:52:00.266000             🧑  作者: Mango

如何使用 new 运算符在 C++ 中动态声明二维数组

在 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 运算符释放动态分配的内存。