如何动态创建二维数组?
时间: 2024-06-19 16:03:01 浏览: 8
在C++中,可以使用new操作符来动态创建二维数组。假设我们要创建一个m行n列的二维数组,可以使用以下语句:
```
int **array = new int*[m];
for(int i = 0; i < m; i++)
{
array[i] = new int[n];
}
```
以上代码会先创建一个指向int指针的指针array,然后使用循环分别为每一行分配n个int类型的内存空间。注意,在使用完这个二维数组之后,需要使用delete操作符来释放内存,否则会导致内存泄漏。
相关问题
不能直接创建二维数组?
在 C++ 中,也可以直接创建二维数组。例如:
```c++
const int row = 3, col = 4;
int arr[row][col]; // 定义二维数组
// 对数组进行操作
for(int i = 0; i < row; i++){
for(int j = 0; j < col; j++){
arr[i][j] = i * col + j;
}
}
```
这里使用了常量表达式 `row` 和 `col` 来定义了一个二维数组 `int arr[row][col]`。这个数组在栈上分配内存,可以直接对其进行操作,不需要手动释放内存。但是需要注意的是,这种方式只能在编译时确定行和列的大小,而不能在运行时动态确定。如果需要动态确定数组大小,还是需要使用动态申请内存的方式。
java 动态创建二维数组
以下是Java动态创建二维数组的方法:
```java
int m = 3; // 行数
int n = 4; // 列数
int[][] a = new int[m][n]; // 创建一个m行n列的二维数组
// 给二维数组赋值
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
a[i][j] = i * n + j;
}
}
// 输出二维数组
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
System.out.print(a[i][j] + " ");
}
System.out.println();
}
```
上述代码中,首先定义了行数m和列数n,然后使用`new`关键字创建一个m行n列的二维数组。接着使用两个嵌套的`for`循环给二维数组赋值,最后再使用两个嵌套的`for`循环输出二维数组。