Сколько раз функция может вызвать саму себя? C/C++

258
07 февраля 2020, 15:00

Сколько раз функция может вызвать саму себя и от чего это зависит

Answer 1

Сколько угодно - но пока ей позволяет память.

Каждый вызов требует в общем случае место в стеке для хранения адреса возврата и локальных переменных (включая переданные аргументы).

Естественно, всякие частные случаи и оптимизации могут влиять на указанное количество необходимой для одного вызова памяти.

Answer 2

Смотря какая функция. Вы можете регулировать количество вызовов ставя условие (или утверждение) или генерировав исключение. Например такая функция:

void foo() {
    static int k = 1;
    if (k++ > 2) return;
    cout << k <<' ';
    foo();   
}

Может вызвать саму себя всего один раз...

READ ALSO
Ошибка Thread 1: EXC_BAD_ACCESS (code=1, address=0x0) при компиляции

Ошибка Thread 1: EXC_BAD_ACCESS (code=1, address=0x0) при компиляции

Необходимо написать класс для работы с целыми знаковыми числами с использованием stl и виртуальных функций(С++03)

288
Аппаратный генератор случайных чисел

Аппаратный генератор случайных чисел

Нашел в интернете код, где используется аппаратный генератор случайных чиселХабр

260
как разделить очень очень длинное число, такое как Фибоначчи на очень мелкие части

как разделить очень очень длинное число, такое как Фибоначчи на очень мелкие части

Дело в том что мой код не может отобразить все число даже unsigned long long кажется очень мелким, я думаю использовать int и разделения между длиной...

237
Как &ldquo;обновить&rdquo; openGL в SFML?

Как “обновить” openGL в SFML?

В SFML есть возможность использование openGL (логично), однако его версия 11 - слишком старая

245