New to pointers and C and need for my program a pointer for an array of structs and be able to pass this pointer to a function.
What is the correct way to declare a pointer of struct array type and what should be my function parameter that can take such pointer?
This is my attempt:
#define HAND_SIZE 5
struct Card {
char suit;
char face;
};
void printHandResults(struct Card *hand[HAND_SIZE]);
int main(void)
{
struct Card hand[HAND_SIZE];
struct Card (*handPtr)[HAND_SIZE]; //Correct way to declare?
handPtr = &hand;
...
printHandResults(handPtr);
}
void printHandResults(struct Card *hand[HAND_SIZE]) {
...
}
And this is the warning I get:
warning: incompatible pointer types passing 'struct Card (*)[5]' to parameter of type 'struct Card **' [-Wincompatible-pointer-types]
I understand the pointers are different types but I cant seem to figure out how to set it correctly.
I'll appreciate if someone can *pointer me in the right direction.