Oregon hPlayer e p sono lo stesso vettore come puoi vedere dalla chiamata
codice:
Card *deck=NULL;
int cardsLeftinthedeck;
_Bool loadornew;
Player hPlayer[NPLAYERS];
if(loadornew == true){
caricaPartita(deck, hPlayer, cardsLeftinthedeck);
}else{
...
codice:
void caricaPartita(Card* deck, Player p[], int cardsleft){
int i, j;
FILE* fp=NULL;
fp = fopen("partita.sav", "r+b");
if(fp == NULL)
exit(0);
/*Caricamento players*/
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 deck*/
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);
}
}