其中:ssize 是数组的输入大小,student 是全局声明的结构,read_stud 是我用来读取数组的函数。
打印出来时, s[count].first 给了我正确的名字,但是 s[0] 和之后的所有值也是相同的名字,而不是之前输入的值。它将结构值更改为我最近的输入!
struct student //this struct is global
{
int number;
char *first ;
char *last ;
};
struct student read_stud (int number, char *first , char *last) //my read_stud function
{
struct student s;
s.number = number;
s.first = first;
s.last = last;
return s;
}
这是在int main
,我使用该功能的地方s = calloc(ssize, sizeof (struct student));
for (count = 0; count < ssize ; ++count)
{
printf ("Enter student number, name and last name: \n");
scanf ("%d %s %s", &number, &first, &last);
s[count] = read_stud (number, first, last);
}
非常感谢能帮我解决这个问题的人!