Come hai scritto tu:
codice:
stampa(int *vet, int size){

.......
}
Non è logico.
Quando chiamiamo una funzione, ad esempio nella main, dichiariamo le variabili e nella chiamata inseriamo quelle variabili.
Es:
codice:
/* Funzione */
void esadecimale(char c){ /* la variabile char c, sarà sostituita da quella della chiamata */
     if(((c>=0)&&(c<=9))||((c>='a')&&(c<='f'))||((c>='A')&&(c<='F')))
     printf("numero esadecimale\n");
     else printf("non esadecimale\n");
}
Quando la chiami nella main:
codice:
int main(){
     char car1;
     printf("inserisci un carattere");
     scanf("%c",&car1);
     esadecimale(car1); /*la funzione è void quindi non ha bisogno di una variabile per chiamarla */
     system ("pause");
     return 0;
}