C语言二维数组如何运用动态内存分配
时间: 2023-12-20 22:31:43 浏览: 146
C语言动态分配二维数组
动态内存分配是在程序运行时根据需要分配内存空间,而不是在编译时就确定了内存大小。C语言中,可以使用指针和malloc函数来实现动态内存分配。下面是C语言二维数组如何运用动态内存分配的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main()
{
int **p = 0;
p = (int **)malloc(10 * sizeof(int *)); if (NULL == p)
{
printf("malloc error");
return 0;
}
for(int i=0;i<10;i++)
{
p[i] = (int *)malloc(10 * sizeof(int *));
if (NULL == p[i])
{
printf("malloc2 error");
return 0;
}
}
// 给二维数组赋值并输出
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
p[i][j] = i * 10 + j;
printf("%d ", p[i][j]);
}
printf("\n");
}
// 释放内存
for(int i=0;i<10;i++)
{
free(p[i]);
}
free(p);
return 0;
}
```
上述代码中,首先使用malloc函数分配了一个指向指针的指针p,然后使用循环分别为p中的每个指针分配了一个长度为10的int型数组。接着,使用两层循环给二维数组赋值并输出。最后,使用循环释放了分配的内存空间。
阅读全文