C Returning char [] Advertencia "devuelve la dirección de la variable local" [duplicado]

Esta pregunta ya tiene una respuesta aquí:

Devolviendo una dirección de comportamiento de variable local [duplicado] 2 respuestas

Esta es una parte de una tarea.

Estoy tratando de leer y devolver una sola línea de un archivo en mi método getLine.

char *getLine(FILE *input) {
    char line[30];
    if(fgets(line, sizeof(line), input)!=NULL)
    {
        return line;
    }else{
        return NULL;
    }
}

Esto parece funcionar a partir de lo que se me ha enseñado con respecto a los punteros, sin embargo, no puedo eliminar el mensaje de advertenciawarning: function returns address of local variable [enabled by default]. Esta advertencia se refiere a la línea.return line;. Mi asignación requiere que no tenga advertencias o errores cuando compilo. No veo lo que estoy haciendo mal.

La mayor parte de la ayuda que encontré sugirió espacio para la línea de texto, pero aún no lo hemos cubierto en clase, a pesar de que lo he hecho en otra clase. ¿Es esa realmente la mejor manera de hacer esto? Si es así, ¿podré liberar en cualquier parte del programa?

Respuestas a la pregunta(2)

Su respuesta a la pregunta