gpt4 book ai didi

c - 在 C 中取消引用指向不完整类型队列的指针

转载 作者:行者123 更新时间:2023-11-30 15:30:04 25 4
gpt4 key购买 nike

我想使用节点创建一个队列,因为它在创建时将为空,我希望头和尾指向 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队列.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 = NULL; ^

unt.c:34:6:错误:取消引用指向不完整类型的指针

q->head = NULL; ^

unt.c:35:2:错误:输入末尾处的预期声明或语句

返回q; ^

最佳答案

对我来说它编译得很好。尝试将 typedef 移至结构声明下方

 struct node{
void *info;
struct node *next;
};

struct queue{
node_t *head;
node_t *tail;
};

typedef struct node node_t;
typedef struct queue queue_t;

除此之外似乎还可以

编辑:还应该检查 stdlib 和 stdio 包含的内容。

关于c - 在 C 中取消引用指向不完整类型队列的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25850656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com