二维数组动态内存申请
时间: 2023-12-26 19:27:36 浏览: 78
动态内存申请是在程序运行时根据需要动态地分配内存空间。对于二维数组的动态内存申请,可以使用指针的指针来实现。
以下是一个C语言的例子,演示了如何动态申请二维数组的内存空间,并对其进行初始化和释放:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int **a;
int i, j;
// 为二维数组分配3行
a = (int **)malloc(sizeof(int *) * 3);
// 为每列分配4个大小空间
for (i = 0; i < 3; ++i) {
a[i] = (int *)malloc(sizeof(int) * 4);
}
// 初始化
for (i = 0; i < 3; ++i) {
for (j = 0; j < 4; ++j) {
a[i][j] = i + j;
}
}
// 输出测试
for (i = 0; i < 3; ++i) {
for (j = 0; j < 4; ++j) {
printf("%d", a[i][j]);
}
printf("\n");
}
// 释放动态开辟的空间
for (i = 0; i < 3; ++i) {
free(a[i]);
}
free(a);
return 0;
}
```
输出结果为:
```
0123
1234
2345
```
这段代码首先使用`malloc`函数为二维数组的行分配内存空间,然后使用嵌套的`malloc`函数为每一行的列分配内存空间。接着,通过双重循环对二维数组进行初始化,并输出测试结果。最后,使用`free`函数释放动态申请的内存空间。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)