Я пишу базу данных студентов в C и я определил две структуру студента и курс, которые выглядят следующим образом:Структуры внутри структур?
typedef struct student Student;
typedef struct course Course;
struct course
{
char number[300];
char title[300];
char instructor[300];
char days[10];
char start[10];
char end[10];
char location[300];
};
struct student
{
char name[300];
int age;
Course course1;
Course course2;
};
Student *Data[30];
Course *Courses[30];
У меня возникли проблемы, отображающие студент я создаю, хотя. Я просто хочу распечатать имя, возраст и два курса, но у меня возникли проблемы с доступом к элементам структуры курса через студенческую.
Я попытался это:
printf("course1: %s\t%-40s%-30s\t%s\t%s-%s\t%s\n",
Data[i]->course1.number,
Data[i]->course1.title,
Data[i]->course1.instructor,
Data[i]->course1.days,
Data[i]->course1.start,
Data[i]->course1.end,
Data[i]->course1.location);
Но, конечно, не работает ...
Какую ошибку вы получаете? С дизайнерской точки зрения: плохо, что каждый студент имеет полную копию курса. – John3136
'Data' и' Courses' содержат только указатели на структуры 'Student' и' Course' соответственно, эти указатели не будут указывать на действительные экземпляры структуры, если вы их каким-то образом не назначили. Вы это сделали? – Praetorian