错误:请求C中非结构或联合中的成员“…”

错误:请求C中非结构或联合中的成员“…”,c,C,我正在头文件中编写队列的结构,并在qfuntion.c中定义了一个函数来操作队列 头文件 qFunction.c main.c 问题是,一旦我运行main.c。错误如下所示 错误:请求非结构或联合中的成员“大小” 当你说typedef结构队列*Qt;您正在为结构指针创建typedef。在此之后,您将创建Qt*q;其中inturn表示结构队列**q;它没有名为size的成员。typedef结构队列Qt;可以解决您的错误。这就是为什么我们告诉您不要使用typedef指针…检查数据类型..更不用

我正在头文件中编写队列的结构,并在qfuntion.c中定义了一个函数来操作队列

头文件

qFunction.c

main.c

问题是,一旦我运行main.c。错误如下所示

错误:请求非结构或联合中的成员“大小”


当你说typedef结构队列*Qt;您正在为结构指针创建typedef。在此之后,您将创建Qt*q;其中inturn表示结构队列**q;它没有名为size的成员。typedef结构队列Qt;可以解决您的错误。

这就是为什么我们告诉您不要使用typedef指针…检查数据类型..更不用说不要初始化q,因此q->size=0的行为;未定义。q的类型是struct Queque**,而不是struct Queque*。所以指针q没有大小为的成员。也可以将struct队列键入为structQueueTree@BLUEPIXY我很高兴看到你用完整的句子发表评论。以前你的代码修复文章没有什么问题,但我希望看到,在你的用户页面上给出你的描述后,你会觉得写英语更舒服
struct QueueTree{
   int element[n];
   int size;
   ...
};

typedef struct QueueTree *Qt;
#include "Header File"
Qt * createQueueTree(){
   Qt *q;
   q->size = 0;
   return q;
}
#include "Header File"
void main(){
   Qt *q = createQueueTree(); 
}