Non hai postato tutto il codice quindi non si capisce se le variabili che indicano la dimensione degli array sono inizializzate ! potresti usare delle costanti al posto di variabili.
poi le passi per indirizzo alla funzioni quindi per usarle devi anteporre *
al nome delle variabili .
sottrai 1 in modo sbagliato .
codice:
void elabora(char dec[],int *dimd, int vet[],int dimv,char mat[])
{
int i;
i=0;
for(i=0;i<dimv;i++)
{
// dec[i]=(mat[vet[i]]-1); come hai scritto tu
dec[i]=(mat[vet[i]-1]); // indica il valore dell'array vet[] in posizione i -1
}
*dimd=i;
}