Встречается на собеседованиях • сегодня

Что произойдет при переполнении stack

При переполнении стека (stack overflow) программа аварийно завершится с ошибкой Segmentation fault или Stack overflow. Это происходит, когда рекурсивные вызовы или локальные переменные исчерпывают выделенную память стека (обычно 1-8 МБ).

Пример на Python (хотя в CPython есть защита от переполнения стека):

python
def recursive_func():
    recursive_func()  # Бесконечная рекурсия

recursive_func()  # Вызовет RecursionError: maximum recursion depth exceeded

В C++:

cpp
void infinite_recursion() {
    infinite_recursion();  // Приведет к stack overflow
}

Как избежать:

  • Ограничивать глубину рекурсии.
  • Использовать итерации вместо рекурсии.
  • Увеличить размер стека (если возможно, например, через ulimit -s в Linux).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы