二维数组的动态申请与释放
#include <stdio.h>
#include <stdlib.h>
//动态申请3行4列二维数组:
#define row 3//行
#define col 4//列
int main()
{
int **a;
int i, j;
a = (int**)malloc(sizeof(int*)*row);//为二维数组分配row行
for (i = 0; i < row; i++){//为每列分配col个大小空间
a[i] = (int*)malloc(sizeof(int)*col);
}
//初始化赋值
for (i = 0; i < row; i++){
for (j = 0; j < col; j++){
a[i][j] = i*j;
}
}
//打印输出
for (i = 0; i < row; i++){
for (j = 0; j < col; j++){
printf ("%d ", a[i][j]);
}
printf ("\n");
}
//释放空间
for (i = 0; i < row; i++){
free(a[i]);
}
free(a);
return 0;
}