【发布时间】:2018-11-10 03:28:44
【问题描述】:
当 head 指向一个结构时,试图找出我收到此错误的原因。看起来 head 指向 QNODE 长度。为什么不呢?
typedef struct Qnode QNODE;
struct Qnode
{
int length;
QNODE* next;
};
typedef struct lqueue lQUEUE;
struct lqueue
{
QNODE *head;
QNODE *tail;
};
lQUEUE lqueue_init_default(void)
{
lQUEUE* pQ = NULL;
pQ = (lQUEUE*)malloc(sizeof(lQUEUE));
pQ->head->length = NULL;
pQ->tail->length = NULL;
pQ->head->next = pQ->tail;
return *pQ;
}
【问题讨论】:
-
lqueue_init_default()应该返回lQUEUE*,而不是lQUEUE。不管怎样,pQ->head和pQ->tail在malloc()之后的值是多少? -
briduss,
pQ = (lQUEUE*)malloc(sizeof(lQUEUE));之后,pQ->head的值是多少? -
... 每次你在 C 中使用
*alloc()的结果时,一只小猫就死了:( -
上面的代码不会产生你所说的错误信息。请使用minimal reproducible example 更新您的问题,其他人可以按原样编译以重现您的问题。还包括您收到的确切错误消息。