c ошибка очереди структуры: "тип массива имеет неполный тип элемента" - PullRequest
0 голосов
/ 24 мая 2010

Я пытаюсь реализовать простую очередь приоритетов из массива очередей. Я пытаюсь определить очередь структуры, а затем очередь приоритета структуры, которая имеет массив очередей в качестве переменной-члена. Однако, когда я пытаюсь скомпилировать код, я получаю следующую ошибку:

pcb.h: 30: ошибка: тип массива имеет неполный тип элемента

Код ниже:

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

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

Может ли кто-нибудь помочь мне? Большое спасибо.

Ответы [ 3 ]

3 голосов
/ 24 мая 2010

Вы уже напечатали pcb_Q, больше не нужно использовать ключевое слово struct.Просто используйте это:

typedef struct { 
    pcb_Q queues[5]; 
    SINT32 size; 
} pcb_pQ;
1 голос
/ 24 мая 2010

Мне не нравится эта строка:

struct pcb_Q queues[5];

Какая справочная структура pcb_Q.

Вы не определили pcb_Q как структуру. Вместо этого вы вводите в качестве нового типа определение pcb_Q (которое является структурой без имени).

Попробуйте вместо этого:

pcb_Q queues[5];
1 голос
/ 24 мая 2010
typedef struct {
 pcb_Q queues[5];
 SINT32 size;
} pcb_pQ;

Ваш тип структуры не имеет имени. Только typedef называется pcb_Q.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...