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.