So bin ich wirklich verwirrt, nachdem ich in der letzten Stunde damit herumgespielt habe.Macht Zeiger von Integer ohne eine Umwandlung in C-Funktionsaufrufen
Ich versuche, eine Funktion innerhalb einer anderen Funktion innerhalb einer anderen Funktion aufzurufen. Ich erhalte eine Fehlermeldung, die besagt: "Übergabe von Argument 1 von displayDeck macht Zeiger von Integer ohne eine Umwandlung. Erwartete int * aber das Argument ist vom Typ int."
void printCard(int card)
{
char ranks[RANKS] = {'A','2','3','4','5','6','7','8','9','0','J','Q','K'};
char *suits = "SHDC";
printf("%c%c", ranks[card%RANKS], suits[card/RANKS]);
}
void displayDeck(int deck[])
{
int count = 0;
int cleanDisplay = 0;
while(count < MAXIMUM)
{
if(cleanDisplay == RANKS)
{
printf("\n");
cleanDisplay = 0;
}
printCard(deck[count]);
printf(" ");
cleanDisplay++;
count++;
}
printf("\n\n");
}
void dealCards(int deck[], int hands, int cards)
{
int total = hands * cards;
int counter = 0;
int counter2 = 0;
while(counter < total)
{
if(counter2 == cards)
{
printf("\nPlayer's Hand: \n");
counter2 = 0;
}
displayDeck(deck[counter]);
counter2++;
counter++;
}
}
displayDeck akzeptiert ein int, und so ist mein Aufruf dazu in der dealCards-Funktion. Also ich bin mir nicht sicher, was ich hier machen soll. Ich muss vielleicht einen anderen Zeiger implementieren? Ich versuche, Karten aus einem Array auszugeben, das ich erstellt und gemischt habe.
Ich rate, der Fehler ist irgendwo innerhalb printCard, da das die einzige Funktion ist, die Zeiger behandelt.
P.S Ich bin immer noch ziemlich neu in C, wenn dies eine Art von einfachem Fehler als Entschuldigung ist.