如何处理具有指向另一个结构的变量的结构,该结构具有指向另一个结构的变量

时间:2017-11-12 10:34:43

标签: c pointers struct

假设我需要创建一个包含单元信息的结构(大学/学校班级等)。然后我有一个结构,它保存学生的信息,参加多个单元,所以他将有一个指向这个单元结构的指针。然后,我有另一个结构,包含所有这些学生结构(比如学校结构)。

例如:

typedef struct unit {
    int code;
    float mark;
} Unit;

typedef struct student {
    Unit* listofunits;
    int numofunits;
    char name[50];
} Student;

typedef struct record {
    Student *listofstudents[];
    int numofstudents;
} Record;

几个问题:

  1. 我指定listofstudents和listofunits多少个asterix?
  2. 当Malloc关注这些时,可以这样做吗?
  3. Record *recordarray = (Record*)malloc(sizeof(Record));
    
    recordarray->listofstudents = (Student*)malloc((recordarray->numofstudents)*sizeof(Student));
    
    recordarray->listofstudents->listofunits = (Unit*)malloc((recordarray->listofstudents->numofunits)*sizeof(Unit));
    
    1. 要访问Unit结构,它是这样完成的:
    2.   

      recordarray [i] [j]为.code;

           

      recordarray [i] [j] .mark;

0 个答案:

没有答案