2016-01-05 39 views
-3

這是我的代碼。它調用了一些功能,但沒有涉及到這個問題。元素打印顯示意想不到的值

int main() 
{ 



    srand((unsigned int)time(NULL)); //initializing srand 

    struct card *deckAr = createDeck(); //creating the struct card deck array 

    for (int i = 0; i < 100000; i++) 
    { 
     shuffleDeck(deckAr); 
    } 



     struct card *player1hand = (struct card*)malloc(sizeof(player1hand)); 
     struct card *player2hand = (struct card*)malloc(sizeof(player2hand)); 
     struct card *househand = (struct card*)malloc(sizeof(househand)); 

     player1hand = (struct card*)realloc(player1hand, sizeof(player1hand) * 2); 
     player1hand[0] = deckAr[0]; 
     player1hand[1] = deckAr[1]; 

     printf("Card 1 %s of %s\n\n", valueName(player1hand[0].suit), suitName(player1hand[0].suit)); 
     printf("Card 2 %s of %s\n\n", valueName(player1hand[1].suit), suitName(player1hand[1].suit)); 
     printf("%s of %s\n", valueName(deckAr[0].value), suitName(deckAr[0].suit)); 


    return 0; 
} 

輸出:

Card 1 Three of Hearts 

Card 2 Three of Hearts 

Ten of Hearts 

由於沒有在操縱deckAr,不應deckAr [0]是相同的player1hand [0]?

+0

@Danny_ds在C 1-6 – Roddy

回答

3

您打印:

valueName(player1hand[0].suit) 

但我覺得你的意思是這樣的:

valueName(player1hand[0].value) 
+0

omg我很蠢......謝謝。 –