2

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

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

请问有什么帮助吗?:) 谢谢。

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);

4

2 回答 2

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);

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

于 2012-11-06T09:32:48.950 回答
0

因为你使用 typedef 使用这个

typedef struct {
char name[31];
result_t results;<---remove struct
} student_t;
于 2012-11-06T09:17:29.613 回答