Witam , mam problem z dodawaniem pierwszego el do listy (add_first) i nie potrafie znaleźć błędu , widzicie coś ?
#include <stdio.h>
#include <stdlib.h>
typedef struct lista
{
int val;
struct lista *next;
}lista;
void add(lista *poczatek,int wartosc)
{
lista element;
element=(lista) malloc (sizeof(lista));
element->val=wartosc;
while(poczatek->next)
{
poczatek=poczatek->next;
}
poczatek->next=element;
element->next=NULL;
}
void show(lista *poczatek)
{
while(poczatek)
{
printf("%d\n",poczatek->val);
poczatek=poczatek->next;
}
}
void add_first(lista *poczatek,int wartosc)
{
lista tmp;
tmp=(lista) malloc (sizeof(lista));
if (tmp==NULL)
{ printf("BRAK PAMIECI !");
return 1;
}
tmp->val=wartosc;
tmp->next=poczatek;
poczatek=tmp;
}
int main()
{
lista poczatek= (lista) malloc (sizeof(lista));
poczatek->val=25;
poczatek->next=NULL;
add(poczatek,20);
add_first(poczatek,289);
show(poczatek);
return 0;
}