Как выделить место для заголовка связанного списка в C? - PullRequest
0 голосов
/ 01 февраля 2019
    struct node {
        int data;
        struct node *next;
    };

    int main() {

        struct node *head = malloc(sizeof(struct node));
        struct node *current = head;
        ...
    };

Хотя этот фрагмент кода может работать без каких-либо предупреждений или ошибок, Valgrind выдаст несколько сообщений о том, что Conditional jump or move depends on uninitialised value(s), Uninitialised value was created by a heap allocation

Я не могу понять, что происходит не так.Мы определили структуру node вне функции main.Так что я думаю, что мы можем использовать sizeof(struct node), не так ли?

1 Ответ

0 голосов
/ 01 февраля 2019

Вам нужно инициализировать данные и следующий указатель с головой.Я имею в виду

head->data = 0;
head->next = NULL;

Он пройдет проверку Valgrind

...