error: la función devuelve la dirección de la variable local

Soy principiante con C y estoy aprendiendo por mi cuenta. Estoy creando la siguiente función:

char *foo(int x){
     if(x < 0){
        char a[1000];
        char b = "blah";
        x = x - 1;
        char *c = foo(x);
        strcpy(a, b);
        strcat(a, c);
        return a;
      }
    blah ...
}

Básicamente estoy tratando de devolver una cadena anexada, pero recibo el siguiente error:

"error: la función devuelve la dirección de la variable local", alguna sugerencia, ¿cómo solucionarlo?

Respuestas a la pregunta(7)

Su respuesta a la pregunta