c struct queue error: "array type has incomplete element type"
I'm trying to implement a simple priority queue from array of queues. I'm trying to define a struct queue, and than a struct priority queue that has an array of queues as its member variable. However, when I try to compile the code, I get the following error:
pcb.h:30: error: array type has incomplete element type
The code is below:
typedef struct{
pcb *head;
pcb *tail;
SINT开发者_如何学JAVA32 size;
} pcb_Q;
typedef struct {
struct pcb_Q queues[5];
SINT32 size;
} pcb_pQ;
Could someone give me a hand? Thanks a lot.
You already typedef the pcb_Q, no need to use struct keyword any more. Just use this:
typedef struct {
pcb_Q queues[5];
SINT32 size;
} pcb_pQ;
typedef struct {
pcb_Q queues[5];
SINT32 size;
} pcb_pQ;
Your struct type has no name. Only the typedef is called pcb_Q
.
I don't like this line:
struct pcb_Q queues[5];
Which references structure pcb_Q.
You have not defined pcb_Q as a structure. Instead, you typedef'd pcb_Q as a new type (which happens to be an un-named struct).
Try this instead:
pcb_Q queues[5];
精彩评论