Devolviendo un puntero a una variable automática

Digamos que tienes la siguiente función:

char *getp()
{
    char s[] = "hello";
    return s;
}

Dado que la función está devolviendo un puntero a una variable local en la función que se usará afuera, ¿causará una pérdida de memoria?

PD Todavía estoy aprendiendo C, así que mi pregunta puede ser un poco ingenua ...

[Actualizar]
Entonces, si dices que quieres devolver un nuevochar[] array (es decir, tal vez para una función de subcadena), ¿qué devuelve exactamente? ¿Debería ser puntero a una variable externa? es decir, unchar[] que no es local a la funcion?

Respuestas a la pregunta(8)

Su respuesta a la pregunta