//一维数组的动态分配
int *a,m;
a=(int *)malloc(m*sizeof(int));
//内存空间回收
free(a);
//二维数组的动态分配
int **a,m,n;
int i;
a=(int **)malloc(m*sizeof(int *));
for(i=0;i<m;i++)
a[i]=(int *)malloc(n*sizeof(int));
for(i=0;i<m;i++)
free(a[i]);
free(a);
//三维数组动态分配
int ***a;
int m,n,t;
int i,j;
a=(int ***)malloc(m*sizeof(int **));
for(i=0;i<m;i++)
a[i]=(int **)malloc(n*sizeof(int *));
for(i=0;i<m;i++)
for(j=0;j<n;j++)
a[i][j]=(int *)malloc(t*sizeof(int));
//回收内存空间
for(i=0;i<m;i++)
for(j=0;j<n;j++)
free(a[i][j]);
for(i=0;i<m;i++)
free(a[i]);
free(a);