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;
 }