如何重置来自struct的数组

如何重置来自struct的数组,第1张

概述我创建了这个结构: typedef struct { char* id; char* name; int birthYear; int finishedCourses; double avarage; int coursesNow; int courses[MAX_COURSES_YEAR];}Student; 现在我正在尝试设置一系列课 我创建了这个结构:

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

现在我正在尝试设置一系列课程.

这就是我写的:

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

而错误是:

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

解决方法 通过初始化列表初始化数组仅在声明时允许.所以你可以这样做:

int arr[] = {1,2,5};

但你做不到:

int arr[5];arr = {1,5};

你必须使用循环或memcpy:

int tmp[] = {1,5};// method 1for(int i = 0; i < sizeof(tmp) / sizeof(*tmp); i++) {    arr[i] = tmp[i];}// method 2memcpy(arr,tmp,sizeof(tmp));

您还可以利用复合文字并省去tmp数组:

memcpy(arr,(int []) {1,5},sizeof((int []) {1,5}));
总结

以上是内存溢出为你收集整理的如何重置来自struct的数组全部内容,希望文章能够帮你解决如何重置来自struct的数组所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1212307.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存