HiC:结构内的结构?

时间:2012-11-06 09:15:38

标签: c compiler-errors structure

这是我第一次在结构中使用结构。 编译程序时遇到此错误。 错误:字段'结果'的类型不完整。

错误是指这行代码。 - > struct result_t results;

请帮忙吗? :) 感谢。

typedef struct {
char moduleCode[8];
char grade[3];
} result_t;

typedef struct {
char name[31];
struct result_t results;
} student_t;

编辑:

我改变了我的代码:

typedef struct {
char moduleCode[8];
char grade[3];
} result_t;

typedef struct {
char name[31];
result_t results;
} student_t;

我收到了一个新的编译错误。 错误:下标值既不是数组也不是指针。

触发该错误的代码行如下。 printf(“% - 7s%-2s%d \ n”,student.results [i] .module_code,student.results [i] .grade,student.results [i] .mc);

2 个答案:

答案 0 :(得分:6)

结果不是数组。你应该改变结构学生:

typedef struct {
    char name[31];
    result_t results[MAX_NUM_RESULTS];
} student_t;

或者将printf更改为:

printf(" %-7s %-2s %d\n", student.results.module_code, student.results.grade, student.results.mc);

这取决于一个学生可能有多少可能的结果。

答案 1 :(得分:0)

因为你正在使用typedef使用这个

typedef struct {
char name[31];
result_t results;<---remove struct
} student_t;