c struct queue error:“数组类型具有不完整的元素类型”
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c struct queue error:“数组类型具有不完整的元素类型”相关的知识,希望对你有一定的参考价值。
我正在尝试从队列数组中实现一个简单的优先级队列。我正在尝试定义一个struct队列,而不是一个结构优先级队列,它有一个队列数组作为其成员变量。但是,当我尝试编译代码时,我收到以下错误:
pcb.h:30:错误:数组类型具有不完整的元素类型
代码如下:
typedef struct{
pcb *head;
pcb *tail;
SINT32 size;
} pcb_Q;
typedef struct {
struct pcb_Q queues[5];
SINT32 size;
} pcb_pQ;
有人可以帮我一把吗?非常感谢。
答案
typedef struct {
pcb_Q queues[5];
SINT32 size;
} pcb_pQ;
您的结构类型没有名称。只有typedef被称为pcb_Q
。
另一答案
你已经输入了pcb_Q,不再需要使用struct关键字了。只要用这个:
typedef struct {
pcb_Q queues[5];
SINT32 size;
} pcb_pQ;
另一答案
我不喜欢这句话:
struct pcb_Q queues[5];
哪个引用结构pcb_Q。
您尚未将pcb_Q定义为结构。相反,您键入了将pcb_Q作为新类型(恰好是一个未命名的结构)。
试试这个:
pcb_Q queues[5];
以上是关于c struct queue error:“数组类型具有不完整的元素类型”的主要内容,如果未能解决你的问题,请参考以下文章
cpp报错:C-struct error-Field has incomplete type
使用 struct 和 map 创建 priority_queue
struct.unpack() struct.error: unpack 需要 124 字节的缓冲区
gcc源码编译报错:error: dereferencing pointer to incomplete type ‘struct ucontext’ 解决办法