gpt4 book ai didi

c - 如何重置来自结构的数组

转载 作者:太空狗 更新时间:2023-10-29 16:05:20 24 4
gpt4 key购买 nike

我创建了这个结构:

typedef struct {
char* id;
char* name;
int birthYear;
int finishedCourses;
double avarage;
int coursesNow;
int courses[MAX_COURSES_YEAR];
}Student;

现在我正在尝试设置一系列类(class)。

这是我写的:

s1.courses[] = {5,4,3,2};

错误是:

student.c:15:13: error: expected expression before ‘]’ token
s1.courses[]={5,4,3,2};

最佳答案

int courses[]={5,4,3,2};
memcpy (s1.courses, courses, sizeof(courses));

另一种方法是:

typedef struct {
char* id;
char* name;
int birthYear;
int finishedCourses;
double avarage;
int coursesNow;
int courses[];
}Student;

int courses[]={5,4,3,2};
Student *s = malloc(sizeof(Student)+sizeof(courses));
memcpy (s->courses, courses, sizeof(courses));

在第二种情况下,优点是您可以在运行时为类(class)分配维度,而不是为字段使用填充空间或静态固定空间。

还有其他方法可以做到这一点。

关于c - 如何重置来自结构的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55338373/

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