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;
SINT32 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];
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.