Pay attention to your errors. You're attempting to assign a pointer type to a struct card
. You seem to have wanted an array of card*
.
struct card *deck[52];
Otherwise you don't need dynamic allocation at all; you already have 52
valid card
objects.