二维动态数组的创建:
因为二维数组的本质是数组的数组, 给外层中的每一个内层数组动态申请内存即可.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n1,n2;
printf("请输入二维数组第一个维度:");
scanf("%d",&n1);
printf("请输入二维数组第二个维度:");
scanf("%d",&n2);
int **p=(int **)calloc(n1,sizeof(int));
for(int i=0;i<n1;i++){
p[i]=(int *)calloc(n2,sizeof(int));
}
for(int i=0;i<n1;i++){
for(int j=0;j<n2;j++){
p[i][j]=i*n2+j+1;
printf("%d\t",p[i][j]);
}
printf("\n");
}
for(int i=0;i<n1;i++){
free(p[i]);
}
free(p);
return 0;
}
多维数组以此类推。