erro: função retorna endereço da variável local

Eu sou iniciante com C e estou aprendendo sozinho. Eu estou criando a seguinte função:

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 ...
}

Eu estou basicamente tentando retornar uma string anexada, mas recebo o seguinte erro:

"erro: função retorna endereço da variável local", alguma sugestão, como corrigir isso?

questionAnswers(7)

yourAnswerToTheQuestion