Односвязный список, ошибка вывода - C (СИ)
Формулировка задачи:
не пойму почему не работает вывод?
пишет ошибку,якобы я залезаю в недопустимую часть памяти, условие temp != NULL не выполняется, помогите исправить.
код сишный, среда с++
#include "stdafx.h"
#include "conio.h"
#include "string"
typedef struct Node{
int elem;
struct Node *next;
}list;
void print_list(list *head)
{
list *temp = head;
while (temp != NULL)
{
printf("%d ",temp->elem);
temp = temp->next;
}
}
int main()
{
setlocale(LC_ALL,"Rus");
list *head = NULL, *news = NULL;
head = (list*)malloc(sizeof(list));
news = head;
int kol = 0;
printf("ВВедите колличество элементов в списке: ");
scanf("%d",&kol);
printf("ВВедите значение: ");
scanf("%d",&(head->elem));
for (int i = 0; i < kol - 1; i++)
{
news->next = (list*)malloc(sizeof(list));
printf("ВВедите значение: ");
scanf("%d",&(news->next->elem));
news = news->next;
}
print_list(head);
_getch();
return 0;
}Решение задачи: «Односвязный список, ошибка вывода»
textual
Листинг программы
void print_list(list *head)
{
list *temp = head;
while (temp != NULL)
{
printf("%d ",temp->elem);
temp = temp->next;
}
}