ошибка: функция возвращает адрес локальной переменной

Я начинаю с C, и я учусь самостоятельно. Я создаю следующую функцию:

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

Я в основном пытаюсь вернуть добавленную строку, но я получаю следующую ошибку: "

ошибка: функция возвращает адрес локальной переменнойкакие-нибудь предложения, как это исправить?

Ответы на вопрос(7)

Ваш ответ на вопрос