不了解nullptr,为什么在初始化队列列表时不应该使用nullptr

时间:2019-05-06 02:51:30

标签: c data-structures

我试图为我的学校工作制作信息亭程序。编译时不会发出任何错误信号。但是当我尝试初始化队列列表时,它说我不能使用nullptr ...我不明白我的代码出了什么问题。

typedef struct
{
    int data;
    struct Node* link;
}Node;

typedef struct
{
    Node* front;
    Node* rear;
}QueueTypeNode;

QueueTypeNode* init_node(QueueTypeNode* head)
{
    head->front= NULL;
    head->front->link = head->rear;
    head->rear = NULL;

    return head;
}

1 个答案:

答案 0 :(得分:1)

这是错误的:

head->front= NULL;
head->front->link = head->rear;

您将head->front分配给NULL,然后通过访问head->front->link立即取消引用NULL指针。您无法执行此操作,因为它会导致未定义的行为,并且可能会给您所观察到的运行时错误。