Search code examples
cfilestructfwritefread

Write data from file to struct on C


I have a file from which I want to read data previously created by another program but I get an segmentation fault error. This is the programm.

typedef char Telemento[MAX_CHAR+5];

typedef struct{
   Telemento arraycola[NUM_ELEM];
   int inicio;
   int final;
}TCola;

typedef char TNombreImpresora[MAX_NOM_IMPR];

typedef struct{
   TNombreImpresora nombreimpresora;
   int numerodeficherosencola;
   TCola colaImpresora;
}TImpresora;

typedef struct{
   TImpresora impresora;
   int ocupado;
}TCelda;

typedef TCelda Tlistaimpresora[MAX_IMPR];



int main(){
    FILE *fp;
    int i=0;
    Tlistaimpresora listaimpresoras;



    fp=fopen("test.bin", "r");

    while(feof(fp)==0 && i<4){
       fread(&listaimpresoras[i].impresora, sizeof(listaimpresoras[i].impresora), (i+1), fp);
       listaimpresoras[i].ocupado=1;
       i++;
    }
    fclose(fp);


    return 0;   
}

Thanks for your time. If anyone needs more info please tell me.


Solution

  • I think this line has an error (should be 1, not i+1):

    fread(&listaimpresoras[i].impresora, sizeof(listaimpresoras[i].impresora), 1, fp);