如何在C中将数组添加到struct属性?这里有一个我要完成的示例:
#include <stdio.h>
#include <string.h>
typedef struct {
char age;
short number;
int grades[10];
char name[80];
char address[120];
} Student;
Student s;
s.age = 23;
s.number = 10;
strcpy(s.name, "Jon");
strcpy(s.address, "Doe");
int oldGrades[10] = {1, 8, 2, 2, 4, 9, 9, 8, 4, 1};
s.grades = oldGrades; // Error: expression must be a modifiable lvalue
如何将数组 oldGrades 添加到我最近创建的对象的属性 grade 中?
答案 0 :(得分:1)
您可以使用for循环手动复制阵列内容。
for(int i =0;i<10;i++)
s.grades[i] = oldGrades[i];
或者您可以使用memcpy。
memcpy(s.grades, oldGrades, sizeof(oldGrades))
c
不提供设施s.grades = oldGrades
来按分配复制数组。