gpt4 book ai didi

c - 如何使用函数填充结构中的值?

转载 作者:太空宇宙 更新时间:2023-11-04 05:11:51 24 4
gpt4 key购买 nike

我想调用一个函数来填充 C 中结构的值。我有以下代码,但我收到类似 [Error] request for member 'id' in something not a structure or union.

#include <stdio.h> 

typedef struct {
int id;
float grades[3];
} student_t;

void scan_student (student_t *s) {
printf("Please give student's info:\n");
scanf("%d%f%f%f", s.id, s.grades[0], s.grades[1], s.grades[2]);
}

int main ()
{
student_t stu2;

scan_student(&stu2);

printf("Student's info are:\n");
printf("%6d %5.2f %5.2f %5.2f\n", stu2.id, stu2.grades[0], stu2.grades[1], stu2.grades[2]);

return 0;
}

最佳答案

s 是指针,不是结构。这意味着您不能在其上使用 .

相反,您必须编写 (*s).id(取消引用,然后访问结构成员)或 s->id(同样的东西,但更短)。

此外,scanf %d 接受一个指针,所以它应该是 &s->id

关于c - 如何使用函数填充结构中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53320608/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com