In carddeck_2.c, we used named member variables for cards in the Hand structure. This meant we needed a function to get a pointer to a specific card. While possible, that turned out to be cumbersome. Recall that when all variables are of an identical type and you have a collection of them, an array should immediately come to mind. So, we will rework the definition of our Hand structure to use an array of pointers to Card, as follows:
typedef struct {
Card* hand[ kCardsInHand ];
int cardsDealt;
} Hand;
We still have five cards, but they are now contained in an array, and we still have cardsDealt to keep track of how many cards are in our hand.
As you will see, this will simplify our Hand operations.