У меня есть функция следующим образомПочему эта функция связанного списка печати не работает?
void printLinkedList(struct node *head) {
printf("%d-->", head->data);
while(head->ptr != NULL) {
head = head->ptr;
printf("%d-->", head->data);
}
printf("NULL\n");
}
Я хотел бы напечатать содержание связанного списка строится следующим образом:
for (int i = 0; i < 10; i++) {
head->data = i+1;
head->ptr = malloc(sizeof(struct node));
head = head->ptr;
}
Так в идеале это должно дать мне что-то вроде:
1-->2-->3-->4-->...-->10-->NULL
Если все верно, valgrind дает мне ошибки в памяти. Пожалуйста, скажите мне, что я делаю неправильно.
В связанном списке головной узел (первый узел) необходимо сохранить таким образом, чтобы список можно разобрать. В вашем коде ваша переменная с именем head изменяется для каждого добавления и указывает на последний узел. Также вы не назначаете NULL последнему узлу – 999k