Z nudów zacząłem się uczyć list i mam taki problem gdyż jako pierwszy element listy wpisałem 3, a potem funkcją dodawania nowego elementu dodaję 4 , po czym chcę wypisać zawartość listy jednak wypisuje się tylko 3. Wydaje mi się , że zaimplementowałem poprawnie wszystko, szukałem błędu ale niestety nie mogę nic znaleźć :/
#include <stdio.h>
#include <stdlib.h>
struct element
{
int val;
struct element *next;
};
struct element *first = NULL;
void dodaj(struct element *, int);
void wypisz(struct element *);
int main()
{
first = malloc(sizeof(struct element));
first->val = 3;
first->next = NULL;
dodaj(first, 4);
wypisz(first);
getchar(0);
}
void dodaj(struct element *lista, int liczba)
{
struct element *nowy;
while( lista->next != NULL)
{
lista = lista->next;
}
nowy = malloc (sizeof(struct element));
nowy->val = liczba;
nowy->next = NULL;
lista->next = nowy;
}
void wypisz(struct element *lista)
{
if(lista != NULL)
{
printf("%d\t", lista->val);
lista = lista->next;
}
}