Problema ao retornar uma string da função

Estou tendo problemas com os princípios básicos das strings em C. Tenho uma função:

char *editStr(char *str) {
char new[strlen(str)];
... do some editing ...
return new;
}

Como eu retornaria a matriz de caracteres chamada "new". Pelo que entendi, o valor de retorno da função é um caractere *, o que significa que está solicitando um ponteiro para o primeiro caractere de uma string. No momento, acho que o problema é que estou retornando um caractere de matrizes. Tentei retornar um ponteiro para o primeiro caractere em "novo", mas isso também não parece funcionar. Eu tentei "return * new [0]". Meu conhecimento sobre cordas é ruim.

questionAnswers(7)

yourAnswerToTheQuestion