Riesco ad inserire i valori, poi alla fine non li stampa di seguito; uso dev C++
il problema penso sia nella funzione inserisciTesta...
perchè se elimino quella funzione e aggiungo nella funzione costruisciLista:
N->next=L;
L=N;
mi funziona.
codice:#include <stdio.h> #include<stdlib.h> typedef struct nodo *lista; typedef struct nodo{ int val; lista next; } nodo; lista costruisciLista (void); lista inserisciTesta(lista L, nodo *N); void stampaLista (lista L); int main (void) { lista lis; nodo *n; lis=costruisciLista(); lis=inserisciTesta(lis,n); stampaLista(lis); system("PAUSE"); return 0; } lista costruisciLista(void) { lista N,L=NULL; int val; printf("inserisci il primo valore: "); scanf("%d", &val); while (val) { N=(nodo*)malloc(sizeof (nodo)); N->val=val; L=inserisciTesta(L,N); printf("\nInserisci prossimo valore <0 per terminare>: "); scanf("%d", &val); } return L; } lista inserisciTesta(lista L, nodo *N) { N->next = L; L=N; return L; } void stampaLista(lista L) { while (L!=NULL) { printf("%d\n", L->val); L=L->next; } }

Rispondi quotando