如何new一个二维数组
时间: 2024-02-16 08:00:31 浏览: 21
在C++中,可以使用new运算符来动态分配内存,并创建一个二维数组。示例代码如下:
```c++
#include <iostream>
using namespace std;
int main() {
int n = 3, m = 4;
int **a = new int *[n];
for (int i = 0; i < n; i++) {
a[i] = new int[m];
}
a[1][2] = 3; // 对二维数组进行赋值
cout << a[1][2] << endl; // 输出二维数组中的元素
for (int i = 0; i < n; i++) {
delete[] a[i]; // 释放内存
}
delete[] a; // 释放内存
return 0;
}
```
在示例代码中,首先使用new运算符分配了一个大小为n的int指针数组,然后循环分配了n个大小为m的int数组,将每个数组的首地址存储在指针数组中。这样就创建了一个n行m列的二维数组。在访问二维数组中的元素时,可以使用a[i][j]的方式来进行访问。最后,需要在程序结束时释放内存,先释放每个数组的内存,再释放指针数组的内存。
需要注意的是,使用new运算符创建二维数组时,需要手动管理内存,需要在程序结束时释放内存,否则会导致内存泄漏。而且,new运算符返回的指针类型是int **,不方便传递和使用,因此不建议使用new运算符创建二维数组。可以使用vector<vector<int>>来动态初始化二维数组,更加方便和安全。