Ragazzi ho da poco finito di completare questo programma che non fa altro che creare una lista concatenata semplice di stringe e stamparla. Il programma termina quando mettete il carattere 0, il mio problema sta nel fatto che se metto parole inferiori a 4 lettere funziona perfettamente ma se metto ad esempio "nonno" la o me la stampa male come se non la riconoscesse. Ringrazio in anticipo ogni aiuto.
codice:# include <stdio.h> # include <stdlib.h> # include <string.h> typedef struct L1 { char dato; struct L1 *next; } L; L *crealista(); void visualizzalista(L *p); int main() { L *l; l=crealista(); visualizzalista(l); } L *crealista() { L *p,*punt; int m=2; printf("Inserisci la 1 stringa: "); p=(L*)malloc(sizeof(L)*10); scanf("%s",&p->dato); punt=p; while(punt->dato!='0') { punt->next=(L*)malloc(sizeof(L)); punt=punt->next; printf("Inserisci la %d stringa: ",m); scanf("%s",&punt->dato); m++; } punt->next=NULL; return (p); } void visualizzalista(L *p) { printf("lista"); while(p!=NULL) { printf("-->"); printf("%s",&p->dato); p=p->next; } printf("\n"); }

Rispondi quotando