Salve, sto trattando le liste e sto effettuando degli "allenamenti" su di esse..
ho scritto questo programino che crea una lista a descrizione dell'utente:
l'intento è avere "testa" con il quale posso arrivare a tutti i membri della mia lista, ma il problema che non riesco a risolvere, è perché, "testa" scompare quando entro nel while.. anche se non faccio operazioni..codice:#include <stdio.h> #include <stdlib.h> struct utente { int id; struct utente *next; }; int main(void) { char ris; struct utente *testa, *variante; testa = malloc(sizeof(struct utente)); printf("Inserisci l'ID dell'utente: "); scanf("%d", &testa->id); variante = testa; printf(" - Altro utente da inserire? - "); scanf("%s",&ris); while( ris != 'n') { variante->next = malloc(sizeof(struct utente)); printf("Inserisci l'ID dell'utente: "); scanf("%d", &variante->next->id); variante->next->next= NULL; variante = variante->next; printf(" - Altro utente da inserire? - "); scanf("%s",&ris); } printf("%d", testa->id); printf("\n programma terminatao \n"); return 0; }
quando faccio
il risultato è sempre 0codice:printf("%d", testa->id);
anche se il while è cosi formato:
codice:.... while( ris != 'n') { printf("%d", testa->id); printf(" - Altro utente da inserire? - "); scanf("%s",&ris); } ......
dove sbaglio?![]()

Rispondi quotando