2

構造内で構造を使用するのはこれが初めてです。プログラムをコンパイルすると、このエラーが発生します。エラー: フィールド 'results' の型が不完全です。

エラーはこのコード行を参照しています。-->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);

それは、1 人の学生が得られる可能性のある結果の数によって異なります。

于 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 に答える