[C] Dodawanie do listy

0

Witam.
Uczę się właśnie list i nie mogę znaleźć gdzie mam błąd (segmentation fault...).
Proszę o podpowiedź.

 #include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define MAXCLSS 40

struct LISTA
{
	char* imie;
	int wartosc;
	struct LISTA* nastepny;
};

typedef struct LISTA lista;

lista* dodaj(lista* listaludzi, int value)
{
	lista* poczatekListy = listaludzi;
	char* czlowiek = malloc(MAXCLSS);
	scanf("%s", czlowiek);
	printf("%d", value);
	
	listaludzi->imie = czlowiek;
	listaludzi->wartosc = value;

	listaludzi = listaludzi->nastepny;
	return poczatekListy;
}

int main()
{
	lista* listaa = 0;
	lista* poczatekListy = listaa;
	poczatekListy = dodaj(listaa, 5);
	return 0;
}
0

poatrz sam co robisz. Przesyłasz do funkcji 0 jako wskaźnik, potem korzystasz z tego wskaźnika, a na dodatek zwracasz na końcu ten sam wskaźnik (nadal 0).
Gdzie tworzysz nową wartość typu lista, bo ja tego nie widzę (maloc(sizeof(lista));!

1 użytkowników online, w tym zalogowanych: 0, gości: 1