2016-11-06 3 views
2

Learning C und müssen funktionieren Array von fünf struct Elemente füllen, aber ich kann nicht scheinen, um herauszufinden, wie man eine Funktion, um die Struktur Array übergeben und ich erhalte immer Fehler:kann nicht struct Array übergeben in C

Hier
error: conflicting types for 'dealFiveHand' 

ist der Code:

#define HAND_SIZE 5 

void dealFiveHand(struct Card *wHand[]); 

struct Card { 
    char suit; 
    char face; 
}; 

int main(void) 
{ 
    struct Card *hand[HAND_SIZE]; 
    dealFiveHand(hand); 
} 

void dealFiveHand(struct Card *wHand[]) 
{ 
    ... 
} 

muss ich definieren und einen Zeiger zu initialisieren und dann die Zeiger auf die Funktion übergeben?

+0

Ist das die vollständige Fehlermeldung? Es gibt nichts anderes? Keine Informationsnotizen oder etwas anderes als Teil des Fehlers gedruckt? –

+0

Bitte zeigen Sie die * vollständige * Fehlermeldung an. Bitte zeigen Sie den * exact * Code als [mcve] an (was Sie haben, ist schon nah dran, also machen Sie es einfach zum eigentlichen Code mit der eigentlichen Fehlermeldung inklusive Zeilennummern). – kaylum

Antwort

4

Zumindest müssen Sie die Definition von struct Card BEFORE Funktion dealFiveHand Prototyp verschieben - auf diese Weise weiß die Funktion über den Typ des Parameters.

struct Card { 
    char suit; 
    char face; 
}; 

void dealFiveHand(struct Card *wHand[]); 
+0

Danke. Macht Sinn. Nicht sicher, wie ich es vermisste. – user2300867

3

Sie beziehen sich auf Karte, bevor Sie sie definieren. Erklären Sie es zuerst, bevor Sie es als Argument Ihrer Funktion verweisen dealFiveHand()