Visualizzazione dei risultati da 1 a 8 su 8

Visualizzazione discussione

  1. #1

    [c]Inizializzare Struct da file dinamicamente

    Ho un esercizio nella quale devo creare una funzione:
    codice:
    extern struct libro *read_libri (const char *filename, unsigned int *pn);
    La funzione accetta come parametro un nome di file che deve essere aperto in lettura in modalità tradotta (testo) e un puntatore ad una variabile di tipo unsigned int in cui si dovrà inserire il numero di libri presenti in un file così strutturato: ;;
    La funzione deve ritornare un puntatore ad una nuova zona di memoria (allocata dinamicamente nell’heap) contenente tutti i libri letti dal file. Il numero di libri non è noto a priori e non può essere vincolato dal codice.
    codice:
    extern struct libro *read_libri (const char *filename, unsigned int *pn){    FILE *f;    
    f=fopen(filename,"rt");        
    if(f==NULL)            
    exit(EXIT_FAILURE);     
    struct libro *lib=NULL;            
    int i=0;    
    while(feof(f)==0){        
    lib=(struct libro *)realloc(lib,(i+1)*sizeof(struct libro));                
    fscanf(f,"%u;%s;%u",&lib[i].codice,lib[i].titolo,&lib[i].pagine);        
    i++;    }            
    return lib;    
    fclose(f);    
    free(lib); 
    }
    Ho come risultato un ciclo infinito, non riesco a capire il perché,come posso fare?
    NOTA: Devo utilizzare un compilatore Pelles c.
    Ultima modifica di andrea485; 30-01-2014 a 15:43

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.