以三维为例
#include<stdio.h>
#include<stdlib.h>
int main()
{
int n1,n2,n3;
printf("Enter n1, n2, n3 please! ");
scanf("%d%d%d",&n1,&n2,&n3);
int ***array;
array=(int ***)calloc(n1,sizeof(int **));
for (int i=0;i<n1;i++)
{
array[i]=(int **)calloc(n2,sizeof(int *));
}
for (int i=0;i<n1;i++)
{
for (int j=0;j<n2;j++)
{
array[i][j]=(int *)calloc(n3,sizeof(int));
}
}
for (int i=0;i<n1;i++)
{
for (int j=0;j<n2;j++)
{
free(array[i][j]);
}
}
for (int i=0;i<n1;i++)
{
free(array[i]);
}
free(array);
return 0;
}
注:scanf("%d%d%d,&n1&n2&n3");这种方式有问题,虽然编译会通过,但是运行不会成功!
scanf("<格式化字符串>",<地址表>);