#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
int *ywshuzumalloc(int n) //一维数组分配
{
int *a;
a=(int *)malloc(sizeof(int)*n);
return a;
}
int **ewshuzumalloc(int m,int n) //二维数组分配
{
int **a;
int i;
a=(int **)malloc(m*sizeof(int *));
for (i=0;i<m;i++)
a[i]=(int *)malloc(n*sizeof(int));
return a;
}
int ***swshuzumalloc(int m,int n,int o) //三维数组分配
{
int ***a;
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(o*sizeof(int));
}
return a;
}
void main()
{
int *a;
int **b;
int ***c;
int i,j,k,m,n,o;
int lenght;
printf("请输入动态分配一维数组的个数:\n");
scanf("%d",&n);
a=ywshuzumalloc(n);
for(i=0;i<n;i++)
{
a[i]=i+1;
printf("%d ",a[i]);
}
printf("\n");
lenght=n;
printf("该数组的长度是: %d",lenght);
printf("\n");
printf("请输入动态分配二维数组的个数:\n");
scanf("%d %d",&m,&n);
b=ewshuzumalloc(m,n);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
b[i][j]=(i+1)*10+j+1;
printf("%d ",b[i][j]);
}
printf("\n");
}
printf("\n");
lenght=m*n;
printf("该数组的长度是: %d",lenght);
printf("\n");
printf("请输入动态分配三维数组的个数:\n");
scanf("%d %d %d",&m,&n,&o);
c=swshuzumalloc(m,n,o);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
for(k=0;k<o;k++)
{
c[i][j][k]=(i+1)*100+(j+1)*10+k+1;
printf("%d ",c[i][j][k]);
}
printf("\n");
}
printf("\n");
}
printf("\n");
lenght=m*n*o;
printf("该数组的长度是: %d",lenght);
printf("\n");
}
最新评论