Witam
Chce napisac program, który wczytuje liste kierunkowa z pliku, wypisuje ja, oblicza sumę liczb znajdujących się w liście i wypisuje ją. Po włączeniu programu wyskakuje "segmentation fault(core dumb)". Wnioskuje ze jest cos zle w funkcji sumujacej. Jak moge to naprawic?
Moj kod:
{
unsigned x;
unsigned y;
struct analiza *next;
};
typedef struct analiza analiza;
analiza* pobierajaca(analiza *head)
{
analiza *biezacy=NULL;
while(!feof(stdin))
{
analiza *data=(analiza*) malloc(sizeof(analiza));
scanf("%u%u", &data->x,&data->y);
if(biezacy)
biezacy->next=data;
else
head=data;
biezacy=data;
}
biezacy->next=NULL;
return head;
}
void wypisujaca(analiza *head)
{
analiza *biezacy=head;
while(biezacy)
{
printf("%u\t%u\n", biezacy->x, biezacy->y);
biezacy=biezacy->next;
}
}
int sumujaca(analiza *head)
{
int suma=0;
analiza *biezacy=head;
while(biezacy)
{
suma+=head->x;
head=head->next;
}
return suma;
}
int main(void)
{
analiza *kwiat;
kwiat=pobierajaca(kwiat);
wypisujaca(kwiat);
int sum=sumujaca(kwiat);
printf("Suma x to %d\n", sum);
return 0;
}```