Во время обучения себя тому, как управлять связанными списками в Си, я столкнулся с некоторыми трудностями.Я создал функцию getNode для создания списка из 4 целых чисел.Теперь я хотел бы напечатать первый элемент списка, чтобы я мог узнать что-то новое.К сожалению, когда я пытаюсь вспомнить головной узел списка, программа печатает последний узел.Когда весь код был в main (), не было никаких проблем или чего-то еще, только когда я получил факторизацию кода, упомянутые трудности произошли.Это может быть просто отсутствие указателя или какая-то логическая ошибка.Любая помощь приветствуется!спасибо
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct list
{
int x;
struct list *next;
}list;
list *getNode()
{
int marker = 0;
int base;
list *head, *current;
head=current=NULL;
while (marker < 4)
{
printf("wprowdz liczbe dla NodE o markerze: %d \n", marker + 1);
scanf("%d", &base);
list *node = malloc(sizeof(list));
node->x = base;
node->next = NULL;
if (head == NULL)
{
current = head = node;
}
else
{
current = current->next = node;
}
marker++;
}
return current;
}
void printNode(list *head)
{
printf("this shoud print the first element of linked list :");
printf("%d", head->x);
}
int main()
{
list *start = getNode();
printNode(start);
}