动态分配二维数组很经常会用到,但新手总是会出错,下面的模板来自网上的回答,拷贝到这里方便随时查看。
#include <stdio.h>
#include <malloc.h>
int main()
{
int **a;
int i,j;
a = (int**)malloc(sizeof(int*) * 3);
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] = 0;
//输出测试
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;
}