c语言动态生成二维数组
时间: 2023-08-24 17:23:49 浏览: 114
在C语言中,可以通过动态内存分配的方式生成二维数组。具体操作如下:
首先,定义一个指向二维数组的指针变量,并使用 `malloc` 函数为其分配内存。例如,以下代码定义了一个指向 `int` 类型的二维数组的指针变量 `arr`,并分配了一个 3 x 4 的二维数组的内存空间:
```
int **arr;
arr = (int **)malloc(3 * sizeof(int *));
for (int i = 0; i < 3; i++) {
arr[i] = (int *)malloc(4 * sizeof(int));
}
```
上述代码中,第一行定义了指向二维数组的指针变量 `arr`,第二行使用 `malloc` 函数分配了一个包含 3 个指向 `int` 类型的指针的内存空间,即表示二维数组的行数。然后,使用 `for` 循环遍历每一行,分别使用 `malloc` 函数为每一行分配包含 4 个 `int` 类型变量的内存空间,即表示二维数组的列数。
接下来,就可以像使用普通的二维数组一样使用动态生成的二维数组了。例如,以下代码给二维数组赋值,并输出其中的一个元素:
```
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
arr[i][j] = i * j;
}
}
printf("%d", arr[1][2]);
```
需要注意的是,在使用完动态生成的二维数组后,需要使用 `free` 函数释放其占用的内存空间。例如,以下代码释放了上述动态生成的二维数组的内存空间:
```
for (int i = 0; i < 3; i++) {
free(arr[i]);
}
free(arr);
```
阅读全文