Potersti modifcare la funzione in modo che renda il puntatore al vettore, ma devi stare attento perchè come hai scritto tu il vettore all'uscita dalla funzione viene dealocato, quindi non è piu raggiungibile fuori dalla funzione in cui è definita...
potresti fare una cosa del genere...
codice:
#include <stdio.h>
#include <stdlib.h>
char * miafunzione( char );
int main () {
char * prova = ( char *) miafunzione('g');
printf("%s", prova);
return 0;
}
char * miafunzione (char miocarattere)
{
char * matrice = (char *)malloc(4); // 4 perchè metti 4 elementi
matrice[0]='a';
matrice[1]=miocarattere;
matrice[2]='b';
matrice[3]='\0';
return matrice;
}