我想使用节点创建一个队列,因为它在创建时是空的,我希望头部和尾部指向NULL。但当我尝试这样做时,我发现标题中有错误。有什么想法吗?
typedef struct node node_t;
typedef struct queue queue_t;
struct node{
void *info;
struct node *next;
};
struct queue{
node_t *head;
node_t *tail;
};
queue_t* new_queue(void){
queue_t* q = malloc(sizeof(queue_t));
if (q == NULL)
return NULL;
q->tail = NULL;
q->head = NULL;
return q;
}
谢谢
编辑:这是我尝试编译时遇到的错误:
(gcc-queue.c-Wall-pedantic-std=c99-g-o q)
unt.c:在函数new_queue中:
unt.c:30:31:错误:sizeof对不完整类型queue_t的应用无效
queue_t*q=malloc(sizeof(queue_t));
^
unt.c:33:6:错误:取消引用指向不完整类型的指针
q->tail=空;
^
unt.c:34:6:错误:取消引用指向不完整类型的指针
q->head=空;
^
unt.c:35:2:错误:输入末尾应为声明或语句
返回q;
^