【发布时间】:2019-08-21 20:48:30
【问题描述】:
在“esame.h”中我声明了typedef struct esame *esame;,在“esame.c”中我声明了:
struct esame{
char corso[20];
int voto;
char data[11];
};
在“libretto.h”中我声明了typedef struct libretto *libretto;,在“libretto.c”中我声明了:
struct libretto{
esame esami[MAXESAMI];
};
但是如果例如我尝试printf这个
printf("Corso: %s\nVoto: %d\nData: %s\n", l->esami[i]->corso, l->esami[i]->voto, l->esami[i]->data);
它给了我这个错误,为什么?
error: dereferencing pointer to incomplete type ‘struct esame’
printf("Corso: %s\nVoto: %d\nData: %s\n", l->esami[i]->corso, l->esami[i]->voto, l->esami[i]->data);
【问题讨论】:
-
esame esami[MAXESAMI];->struct esame esami[MAXESAMI]; -
@EugeneSh。数组类型有不完整的元素类型‘struct esame’ struct esame esami[MAXESAMI];
-
struct声明也应该在头文件中,并且最好避免使用指针的typedef。 -
@WeatherVane 我也在头文件中添加了这两个结构,它给了我更多错误