#include <stdio.h>
#include <stdlib.h>
#define N 100
typedef struct student
{
int x[N];
int length;
}
stu;
stu* chushi(int n)
{
int i;
stu link;
stu *p=&link;
for(i=0;i<n;i++)
{
scanf("%d",&link.x[i]);
}
return p;
}
void print(stu *p,int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%d\n",p->x[i]);
}
}
int main()
{
stu *k;
int n=0;
printf("输入数量:");
scanf("%d",&n);
k=chushi(n);
print(k,n);
return 0;
}
stu link;只是个临时变量,返回它的指针是不行的。应该用malloc动态分配空间
#include <stdio.h>
#include <stdlib.h>
#define N 100
typedef struct student
{
int x[N];
int length;
}
stu;
stu* chushi(int n)
{
int i;
stu *link = (stu*)malloc(sizeof(stu));
for(i=0;i<n;i++)
{
scanf("%d",&link->x[i]);
}
stu->length = n;
return link;
}
void print(stu *p,int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%d\n",p->x[i]);
}
}
int main()
{
stu *k;
int n=0;
printf("输入数量:");
scanf("%d",&n);
k=chushi(n);
print(k,n);
return 0;
}