C语言 错误:未定义类型"struct Item"的使用无效



以下是相关的结构。请注意,它们位于同一文件的标头中。

typedef enum {AAA = 0, BBB = 1, CCC = 2, DDD = 3} Subject;
typedef struct item {
Subject sub;
int n, h;
char title[1024];
} Item;
struct Item* Collection = NULL;

在 main 内部,我为 Collection 分配空间:

Collection = malloc(sizeof(Item*));

然后,在我的 main 中,我有一个调用 insert(( 函数的 switch 语句,该函数如下:

void course_insert() {
Collection = realloc(Collection,(sizeof(Collection) + sizeof(Iem)));
printf("What is the subject? (AAA=0, BBB=1, CCC=2, DDD=3)? ");
scanf("%u", Collection[count].sub);
printf("What is the number (e.g 20)? ");
scanf("%d", Collection[count]->n);
printf("How many hours (e.g. 3)? ");
scanf("%d", Collection[count]->h);
printf("What is the name of the item? ");
scanf("%s", Collection[count]->title);   
count++;
}

我收到一个错误,说这是对未定义类型"struct Item"的无效使用,但我可以在其他地方使用它。谁能发现问题所在?

typedef语句表示typedefstruct itemItem。这意味着您已经定义了struct itemItem,但未定义struct Item。尝试使用struct itemItem中的任何一个。

相关内容

  • 没有找到相关文章

最新更新