//一维数组
#include<stdio.h>
#include<stdlib.h>
void scan(int *p,int n)
{
for(int i=0;i<n;i++)
scanf("%d",p+i);
}
void print(int *p,int n)
{
for(int i=0;i<n;i++)
printf("%d ",p[i]);
}
int main()
{
int n;
scanf("%d",&n);
//p可视作动态数组:因为内存可由变量n决定
int *p=NULL;
p=(int*)malloc(n*sizeof(int)); //<-->(int*)calloc(n,sizeof(int))
scan(p,n);
print(p,n);
free(p);
return 0;
}
//二维数组
#include<stdio.h>
#include<stdlib.h>
void scan(int *p,int m,int n)
{
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
scanf("%d",p+i*n+j);
}
void print(int *p,int m,int n)
{
for(int i=0;i<m;i++){
for(int j=0;j<n;j++)
printf("%d ",p[i*n+j]);
printf("\n");
}
}
int main()
{
int m,n;
scanf("%d%d",&m,&n);
int *p=NULL;
p=(int*)calloc(m*n,sizeof(int)); //<-->(int*)malloc(m*n*sizeof(int))
scan(p,m,n);
print(p,m,n);
free(p);
return 0;
}