要解决这个问题,可以使用memcpy()函数来复制结构体数组的内容。下面是一个示例代码:
#include
#include
typedef struct {
int id;
char name[20];
} Student;
typedef struct {
int count;
Student students[10];
} Classroom;
int main() {
Classroom classroom1;
Classroom classroom2;
// 初始化classroom1
classroom1.count = 2;
classroom1.students[0].id = 1;
strcpy(classroom1.students[0].name, "Alice");
classroom1.students[1].id = 2;
strcpy(classroom1.students[1].name, "Bob");
// 复制classroom1的内容到classroom2
memcpy(&classroom2, &classroom1, sizeof(Classroom));
// 打印classroom2的内容
printf("classroom2.count: %d\n", classroom2.count);
for (int i = 0; i < classroom2.count; i++) {
printf("classroom2.students[%d].id: %d\n", i, classroom2.students[i].id);
printf("classroom2.students[%d].name: %s\n", i, classroom2.students[i].name);
}
return 0;
}
在上面的示例中,我们使用memcpy()函数将classroom1的内容复制到classroom2中。这样,classroom2将包含与classroom1相同的结构体数组。