ďťż

Ładny brzuch

CHodzi o to że funkcja gubi wskaźniki. NIe wiem, w którym miejscu, ale po prostu po dodaniu elementu na koniec listy, wyswietla mi elementy wszystkie oprocz tego dodanego. Przy wyswietlaniu od konca listy, wyswietla tylko ostatni element. Znajdźcie błąd, bo ja go po prostu nie widzę. SIedziałem chyba z godzinę i kombinowałem, ale zonk. :huh: :huh: :huh:

Oto funkcja:
//------------DODAWANIE ELEMENTU NA KONIEC LISTY------------ void add_last(struct node **tail, char *napis) {  struct node *temp;  temp=*tail;  *tail=malloc(sizeof(struct node));  (*tail)->name=malloc(sizeof(char)*strlen(napis)+1);  strcpy((*tail)->name,napis);  ((*tail)->next_node)=NULL;  ((*tail)->prev_node)=temp;  (temp->next_node)=*tail; }

Oto deklaracja struktury:
struct node {  char *name;  struct node *next_node;  struct node *prev_node; };

A oto wywołanie tej funkcji:
char *napis; printf("Wprowadz napis do listy: \n"); gets(napis); add(&tail, napis); printf("Element dodany\n\n");

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •