We will create a structure, Shuffled, which, for now, holds some information about the state of our deck and an array of pointers to Card, which is our shuffled deck. We define Shuffled as follows:
typedef struct {
Card* shuffled[ kCardsInDeck ];
int numDealt;
bool bIsShuffled;
} Shuffled;
This gives an array of pointers to Card, the number of cards that have been dealt, and a Boolean value to indicate whether the deck has been shuffled.