Fehler: Funktion gibt Adresse der lokalen Variablen zurück

Ich bin Anfänger mit C und lerne alleine. Ich erstelle folgende Funktion:

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

Ich versuche grundsätzlich, eine angehängte Zeichenfolge zurückzugeben, erhalte jedoch die folgende Fehlermeldung:

"Fehler: Funktion gibt Adresse der lokalen Variablen zurück", irgendwelche Vorschläge, wie man das behebt?

Antworten auf die Frage(7)

Ihre Antwort auf die Frage