Ciao,
visti i grossi problemi sulle liste di liste, sto facendo esercizio sulla lista semplice...
codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void pulisci( char temp[20])
{
int i;
for(i=0;i<=19;i++)
{
temp[i]="";
}
}
typedef struct t_automobile //struttura accessori
{
char macchina[20];
struct t_automobile *next;
} Auto,*PointAuto;
int main()
{
int flag=0;
char temp[20]={"\0"};
PointAuto HeadAuto=NULL,CurrPtr=NULL,PrevPtr=NULL; // puntatori a struct automobile
HeadAuto=(PointAuto)malloc(sizeof(PointAuto)); // crea il primo elemento della lista;
CurrPtr=HeadAuto;
printf("Inserire l'automobile, F per finire:");
scanf("%s",temp);
while(strcmp(temp,"F")!=0) // ciclo per le auto
{
strcpy(CurrPtr->macchina,temp); // copia il nome dell auto nel campo macchina della struttura automobile
PrevPtr=CurrPtr;
CurrPtr=(PointAuto)malloc(sizeof(PointAuto)); //Crezione del nuovo elemento della lista macchine
PrevPtr->next=CurrPtr; // creo il link al prossimo elemento della lista
fflush(stdin);
pulisci(temp);
printf("Inserire l'automobile, F per finire:");
scanf("%s",temp);
}
PrevPtr->next=NULL;
CurrPtr=HeadAuto;
do
{
printf("%s->",CurrPtr->macchina);
CurrPtr=CurrPtr->next;
}while(CurrPtr!=NULL);
free(HeadAuto);
system("pause");
return 0;
in pratica se metto i dati troppo velocemente da tastiera il programma si blocca?
Sbaglio forse l assegnazione dei puntatori? O forse la scanf non e adatta per lo scopo?
Quando poi riesco a immettere i dati e a terminare l inserimento con F a volte durante la stampa si blocca....qualcuno mi dice se ci sono errori logici?
Grazie!
Saluti