Trouble con devolver una cadena de la función

Tengo problemas con los principios básicos de las cadenas en C. Tengo una función:

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

¿Cómo devolvería el conjunto de caracteres llamado "nuevo". Según tengo entendido, el valor de retorno de la función es un char *, lo que significa que está pidiendo un puntero al primer carácter de una cadena. En este momento, supongo que el problema es que estoy devolviendo un carácter de matrices. Traté de devolver un puntero al primer personaje en "nuevo", pero eso tampoco parece funcionar. Intenté "return * new [0]". Mi conocimiento de cuerdas es malo.

Respuestas a la pregunta(7)

Su respuesta a la pregunta