如何在C中将数组添加到struct属性?

时间:2018-11-29 19:05:56

标签: c

如何在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 中?

1 个答案:

答案 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来按分配复制数组。