2010-05-24 51 views
0

我想從隊列數組實現一個簡單的優先級隊列。我試圖定義一個結構隊列,而不是一個結構優先級隊列,它有一個隊列數組作爲其成員變量。然而,當我嘗試編譯代碼時,我得到了以下錯誤:c結構隊列錯誤:「數組類型具有不完整的元素類型」

pcb.h:30: error: array type has incomplete element type

的代碼如下:

typedef struct{ 
    pcb *head; 
    pcb *tail; 
    SINT32 size; 
} pcb_Q; 

typedef struct { 
struct pcb_Q queues[5]; 
SINT32 size; 
} pcb_pQ; 

可能有人給我個忙嗎?非常感謝。

+0

你舉上線30的錯誤,但不能提供足夠的上下文來確定的行號。請確保行號清晰,並確保包含第30行。 – abelenky 2010-05-24 05:22:01

回答

1
typedef struct { 
pcb_Q queues[5]; 
SINT32 size; 
} pcb_pQ; 

您的結構類型沒有名稱。只有typedef被稱爲pcb_Q

+0

哇謝謝,這是快速的 – lhw 2010-05-24 05:23:34

3

你已經typedef的pcb_Q,不需要再使用struct關鍵字。 只要使用此:

typedef struct { 
    pcb_Q queues[5]; 
    SINT32 size; 
} pcb_pQ; 
1

我不喜歡這行:

struct pcb_Q queues[5]; 

它引用結構pcb_Q。

您還沒有將pcb_Q定義爲結構。 相反,您將typedef的pcb_Q作爲新類型(恰好是未命名的結構)。

試試這個:

pcb_Q queues[5]; 
相關問題