[C] - wskaźniki


(Przemekbaranowski) #1

stworzyłem następujące struktury:

struct stringi{

	char znak;

	struct stringi *next,*prev;

};


struct listholder{

struct stringi *first,*last;

}*tekst_jawny_H,*szyfrogram_H,*haslo_H;

Chciałbym stworzyć jedną funkcje push, ktora będzie mogła stworzyć listę i dopisywać do niej elementy, do każdego z trzech wskaźników: *tekst_jawny_H,*szyfrogram_H,*haslo_H Napisałem coś takiego: (printfy z numerkami do kontroli wykonania funkcji)

void push(struct listholder *holder,char c){

printf("o\n");

struct stringi *wsk;

printf("1\n");

wsk = (struct stringi*) malloc(sizeof(wsk));

printf("2\n");

wsk->znak=c;

printf("3\n");

wsk->prev=holder;

printf("4\n");

if (holder->first!=NULL) wsk->next=holder->first->next; else wsk->next=holder->last;

printf("5\n");

if (holder->first!=NULL) holder->first->prev=wsk; else holder->first=wsk;

printf("fin.\n");

}

Po uruchomieniu zwraca exit code 5.

Co robię źle z tymi wskaźnikami? (nic się nie wyświetla - żadna linia się nie wykonuje;/)

Jak powinno wyglądać wywołanie tej funkcji?


(Piki 1987) #2

wrzuć może cały kod, tzn maina z wywołaniem tej funkcji

może nie tworzysz listholderow?


([alex]) #3
void push(struct listholder *holder,char c)

(Przemekbaranowski) #4

działa dzięki! wcześniej dostałem także biblioteki od Wasacza też poro pomogły.

Dzięki za pomoc wszystkim. SOLVED