Il codice che ho scritto è il seguente:
codice:#include <stdio.h>#include <malloc.h> typedef struct elemento{ char nome[20]; int v_media; struct elemento *next; }elemento; struct elemento *crea_lista() { elemento *p, *punt; int i;//indice del ciclo int n = 12;//numero elementi che si intende inserire p=NULL; p = (struct elemento *)malloc(sizeof(struct elemento)); FILE *catalogo= fopen("elenco_auto.txt","r"); fscanf(catalogo, "%s", p->nome); fscanf(catalogo, "%i", &p->v_media); /*scanf("%s", p->nome); scanf("%i", & p->v_media);*/ punt = p; for(i=3; i<=n; i++) { punt->next = (struct elemento *)malloc(sizeof(struct elemento)); punt = punt->next; fscanf(catalogo, "%s", punt->nome); fscanf(catalogo, "%i", &punt->v_media); /*scanf("%s", punt->nome); scanf("%i", &punt->v_media);*/ } // chiudo il for punt->next = NULL; // marcatore fine lista fclose(catalogo); return(p); } int main() { struct elemento *lista; // puntatore della lista lista = crea_lista(); // crea la lista visualizza_lista(lista); // stampa la lista return 0; }
Visualizza lista semplicemente mi scrive cosa contiene la lista che ho creato. Ma l'output che ricevo è il seguente:
Invece dovrebbe essere lista -> nome1 -> 65 -> nome2 -> 75... ecc.lista —> (i792094066 —> (i1868852841 —> (i1766203502 —> (i1852397404 —> (i1953724755 —> (i2003783795 —> (i1852789596 —> (i1176530273 —> (i1936876915 —> (i1131308400 —> (i1096577906 —> NULL
Sapresti dirmi cosa sbaglio?![]()

Rispondi quotando