/* * c语言如何动态分配二维数组? */ #include<stdio.h> #include<stdlib.h> /* * 动态分配二维空间 */ int **init(int m,int n) { int num=1; int **a; a=(int **)malloc(m*sizeof(int *)); for(int i=0;i<m;i++) { *(a+i)=(int *)malloc(n*sizeof(int)); for(int j=0;j<n;j++) { *(*(a+i)+j)=num; num++; } } return a; } /* * 打印二维空间的值 */ void print(int **a,int m,int n) { for(int i=0;i<m;i++) { for(int j=0;j<n;j++) { printf("%d ",*(*(a+i)+j)); } printf("\n"); } } int main() { int m=3; int n=4; int **a=init(m,n); print(a,m,n); return 0; }