Я просто возился со связанными списками, но, похоже, у меня много чего не так. Я пробовал это с функциями, и я не мог заставить его работать. Я думал, что я понял бы это, сделав его более простым, но он все равно не работает. Обычно он печатает только первый элемент справа, а затем случайные огромные числа (скорее всего, адреса памяти)Ошибка связанного списка - C
Я просто хочу создать список и распечатать его содержимое.
#include <stdio.h>
#include <stdlib.h>
struct el{
int value;
struct el *next;
};
typedef struct el Elem;
int main()
{
int nr, i;
struct el *Head, *Conductor;
Head = malloc(sizeof(Elem));
Conductor = Head;
printf("How many elements do you want to add? ");
scanf("%d", &nr);
for(i = 0; i < nr; i++)
{
printf("Enter value for element %d: ", i);
scanf("%d", &(Conductor->value));
Conductor = Conductor->next;
Conductor = malloc(sizeof(Elem));
}
free(Conductor->next);
Conductor->next = NULL;
Conductor = Head;
printf("\n");
for(i = 0; i < nr; i++)
{
printf("%d -> ", Conductor->value);
Conductor = Conductor->next;
}
return 0;
}
Сначала выделить память, а затем присвоить значение. – 0xc0de