在C++中,动态分配二维数组可以使用指针的指针(二级指针)来实现。以下是一个示例代码:
#includeint main() { int rows, cols; // 输入行数和列数 std::cout << "Enter the number of rows: "; std::cin >> rows; std::cout << "Enter the number of columns: "; std::cin >> cols; // 动态分配二维数组 int** arr = new int*[rows]; // 创建指向指针的指针,表示行 for (int i = 0; i < rows; i++) { arr[i] = new int[cols]; // 每个指针指向一个数组,表示列 } // 为二维数组赋值 for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { arr[i][j] = i + j; } } // 打印二维数组 for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { std::cout << arr[i][j] << " "; } std::cout << std::endl; } // 释放内存 for (int i = 0; i < rows; i++) { delete[] arr[i]; } delete[] arr; return 0; }
该代码中,首先通过new
运算符动态分配了一个指针数组,表示行。然后,使用循环为每个指针分配一个数组,表示列。接下来,为二维数组赋值,并打印出来。最后,使用delete
运算符释放内存。