Salve sto lavorando ad un programma, un gioco di carte in cui le carte sono composte da un enumerazione corrispondente al seme e una frase, ovvero la didascalia della carta il deck � allocato su array dinamico e viene letto da un file.txt. Il problema � che non sono sicuro che la lettura sia andata a buon fine, perch� stampando dal while che permette la lettura, la stampa va a buon fine, ma se lo faccio esternamente adesso, con un for e gli indici stampa 0 per l'enumerazione e nulla per la frase. Questo mi impedisce di verificare se l'array � stata riempita correttamente e se la funzione shuffle svolge il suo dovere. Vi allego la parte del codice in questione, aiutatemi!
codice:
void printArray (Card deck[], int n){
    int i;
    for (i = 0; i < n; i++){
        printf("%u\t%s  ", deck[i].type, deck[i].phrase);
    printf("\n");
    }
}
codice:
void deckCreationMedium(Card* deck){
    FILE * fp = fopen("---", "r+");
    deck = (Card*)malloc(MEDIUM * sizeof(Card));
    if(deck == NULL){
        exit(-1);
    }
    while(!feof(fp)){
        fscanf(fp, "%u %[^\n]s", &deck->type, &deck->phrase );
        //fscanf(fp , "\n");
        #if DEBUG_MODE == 1
            printf("\n%u\t%s", deck->type, deck->phrase);
        #endif
    }
    fclose(fp);
    #if DEBUG_MODE == 0
        printArray(deck, MEDIUM);
    #endif
    if(deck != NULL){
        printf("ok\n");
    }
}