codice:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

struct card{
   char *face;
   char *suit;
};

typedef struct card Card;
void FillDeck(Card * const wDeck, const char * wFace[], const char wSuit[]);
void shuffle(Card * const wDeck);
void deal(const Card * const wDeck);

int main(){
Card deck[52];

const char *face[]={"Asso", "Due", "Tre", "Quattro", "Cinque", "Sei",
                    "Sette", "Otto", "Nove", "Dieci", "Jack", "Regina", "Re"};
const char *suit[]={"Cuori", "Fiori", "Picche", "Quadri"};

srand(time(NULL));

FillDeck(deck, face, suit);
shuffle(deck);
deal(deck);

return 0;
}

void FillDeck(Card * const wDeck, const char * wFace[], const char *wSuit[]){
int i;

 for(i=0; i<=51; i++){
    wDeck[i].face=wFace[i%13];
    wDeck[i].suit=wSuit[i/13];
 }
}

void shuffle(Card * const wDeck){
int i;
int j;
Card temp;

 for (i=0; i<=51; i++){
    j=rand()%52;
    temp=wDeck[i];
    wDeck[i]=wDeck[j];
    wDeck[j]=temp;
 }
}

void deal(const Card * const wDeck){
int i;
   for(i=0; i<=51; i++)
      printf("%5s of %-8s%c", wDeck[i].face, wDeck[i].suit, (i+1)%2?'\t':'\n');
}
Gli errori riportati da Dev C++ in fase di compilazione sono i seguenti, entrambi nella funzione FillDeck:
c:36: warning: assignment discards qualifiers from pointer target type
c:37: warning: assignment makes pointer from integer without a cast

Voi ci capite qualcosa? a me sembra perfetta...

edit: il codice riempie una struttura Card, mescola i dati e stampa a video.
edit2: la tag [C] è scomparsa durante il primo edit e con la modifica non funziona... si modifica solo il titolo all'interno. siete sotto vb?