许多c语言书中,很少谈到如何用malloc动态初始化一个二维数组。下面,我写了一段代码,要动态初始化二维数组。
#include
#include
int** test(int m, int n) {
int** a=(int**)malloc(sizeof(int*)*m);
int i;
for (i=0;i
*(a+i) = malloc(sizeof (int)*n);
}
int j=0;
int k=0;
for (i=0;i<5;i++) {
for (j=0;j<5;j++) {
*(*(a+i) +j)=k++;
}
}
return a;
}
void release(int **p, int m) {
int i=0;
for (i=0;i
free(*(p+i));
}
free(p);
}
int main() {
int** a = test(5,5);
int i;
release(a, 5);
for (i=0;i<5;i++) {
printf("%d\n", a[i][4]);
}
} 以上代码中,有申请空间的,有release的。