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:
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;
}
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..
quando faccio
codice:
printf("%d", testa->id);
il risultato è sempre 0
anche se il while è cosi formato:
codice:
....
while( ris != 'n')
{
printf("%d", testa->id);
printf(" - Altro utente da inserire? - ");
scanf("%s",&ris);
}
......
dove sbaglio?