Вот мой код, я пытаюсь попросить пользователя указать некоторые цифры, а затем распечатать их. Я использовал использование связанных списков для своей цели. Программа работает, но заканчивается внезапно, я понятия не имею, что добавить или удалить из кода.Печать одиночно связанного списка завершает программу внезапно
#include <stdio.h>
#include <stdlib.h>
typedef struct node
{
int item;
struct node *next;
}ListNode;
void printList(ListNode *head);
int main()
{
int n;
ListNode *head = NULL;
ListNode *temp = NULL;
printf("Enter a value: ");
scanf("%d", &n);
while (n != -1)
{
if (head == NULL)
{
head = malloc(sizeof(ListNode));
temp = head;
}
else
{
temp->next = malloc(sizeof(ListNode));
temp = temp->next;
}
temp->item = n;
printf("Enter a value: ");
scanf("%d", &n);
}
while (head != NULL)
{
printf("%i\n", head->item);
head = head->next;
}
free(head);
return 0;
}
Когда я ввести 3 numbes (например, 1, 2 и 3), он выводит 123 затем завершает программу abuptly. Может кто-то пролить свет на это?
Итак, ваш вход 1 2 3 и -1? – Dinesh
Да, правильно, я забыл указать, что мне нужно ввести -1, чтобы закончить ввод – mib1413456