Non riesco a caricare da un file binario.. il programma entra in segmentation fault subito appena la funzione viene chiamata senza permettermi di capire dove sta l'errore.. qualcuno puo aiutarmi?
int i, j;
p = NULL;
FILE* fp=NULL;
fp = fopen("salvataggio.sav", "r+b");
if(fp == NULL)
exit(-1);
codice:
for(i=0;i<NPLAYERS; i++){
fread(&p[i].name, sizeof(char), DIM_N+1, fp);
fread(&p[i].alive, sizeof(_Bool), 1, fp);
if(p[i].alive == 1){
fread(&p[i].nHand, sizeof(int), 1, fp);
fread(&p[i].player_type, sizeof(Type), 1, fp);
p[i].hand=(Card*)malloc(p[i].nHand * sizeof(Card));
for(j=0; j<p[i].nHand; j++){
fread(&p[i].hand[j].phrase, sizeof(char), DIM_P, fp);
fread(&p[i].hand[j].type, sizeof(seme), 1, fp);
}
}
}
Caricamento mazzo
fread(&cardsleft, sizeof(int), 1, fp);
deck=(Card*)malloc(cardsleft * sizeof(Card));
for(i=0; i<cardsleft; i++){
fread(&deck[i].phrase, sizeof(char), DIM_P, fp);
fread(&deck[i].type, sizeof(seme), 1, fp);
}