понятия не имею с nullptr, почему я не должен использовать nullptr, когда я инициирую свой список очередей - PullRequest
1 голос
/ 06 мая 2019

Я пытаюсь создать программу киоска для моей школьной работы.это не делает никакого неправильного сигнала, когда я компилирую это.но когда я пытался инициировать мой список очередей, он сказал, что я не могу использовать 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 Ответ

1 голос
/ 06 мая 2019

Это неправильно:

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

Вы присваиваете head->front для NULL, а затем немедленно разыменовываете указатель NULL, получая доступ к head->front->link.Вы не можете этого сделать, поскольку это приводит к неопределенному поведению и, вероятно, дает вам ошибку времени выполнения, которую вы наблюдаете.

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