Ciao a tutti ho dei problemi con un programma (Concessonaria_Auto) in C:
Vi spiego in poche parole cosa ho fatto:
ho un file .txt, da questo file ogni riga contiene i campi:
Marca:Modello:Anno:Numcav:Prezzo
(Esempio riga ----> Alfa Romeo:Mito:2010:110:14000)
PS:i due punti li uso come separatore
dal file creo una lista
Nella compilazione non ho errori, però credo di sbagliare qualcosa quando creo la lista dal file.
Ho provato a stampare gli elementi della lista, nel main (dopo aver creato la lista)
while (auto->next!=NULL) {
printf("%s\n",auto->marca);
printf("%s\n",auto->modello);
printf("%s\n",auto->anno);
printf("%d\n",auto->numcav);
printf("%d\n",auto->prezzo);
auto=auto->next;
}
ottenendo come risultato dell'esecuzione "Segmentation fault", la malloc credo di averla scritta bene, comunque vi posto parte del main dove creo la lista
int main() {
libc auto;
FILE *fp;
int scelta;
//creare lista dai dati contenuti nel file
auto = newlist();
if ((fp=fopen(USER_FILE,"r" )) == NULL ) {
printf ("Errore: impossibile aprire il file %s\n",USER_FILE);
exit(1);
}
while (!feof(fp)) {
auto = malloc(sizeof(automobile));
auto->next = NULL;
fscanf(fp, "%s:%s:%s:%d:%d:\n", auto->marca, auto->modello, auto->anno, &(auto->numcav), &(auto->prezzo));
auto=auto->next;
conta++;
}