【发布时间】:2020-08-03 23:02:26
【问题描述】:
目的是在另一个结构的另一个数组中包含一个结构数组。两个结构数组都应该单独声明和初始化。建议的问题和答案同样只有我的问题的一个组成部分,但没有这个或类似的组合。 我在此处添加的代码只是一个简化示例。所有数组大小和元素在执行之前都是已知的。
这是示例代码,无法编译“Segmentation fault”:
#include <stdio.h>
#include <string.h>
struct student_course_detail
{
int course_id;
char course_name[50];
};
struct student_detail
{
int id;
char name[20];
// structure within structure
struct student_course_detail *course[2];
}stu_data[2], *stu_data_ptr[2];
struct student_course_detail course_data[2] = {
{71145, "Course 1"},
{33333, "Course 2"},
};
struct student_detail stu_data[2] = {
{1, "Anna", &course_data[1]},
{2, "Tom", &course_data[2]}
};
int main()
{
stu_data_ptr[2] = &stu_data[2];
printf(" Id is: %d \n", stu_data_ptr[0]->id);
printf(" Name is: %s \n", stu_data_ptr[0]->name);
printf(" Course Id is: %d \n",
stu_data_ptr[0]->course[0]->course_id);
//printf(" Course Name is: %s \n",
// stu_data_ptr[0]->course[0]->course_name);
//printf(" Course Id is: %d \n",
// stu_data_ptr[0]->course[1]->course_id);
//printf(" Course Name is: %s \n",
// stu_data_ptr[0]->course[1]->course_name);
return 0;
}
【问题讨论】:
标签: c arrays pointers structure