Максимальная запись активации в стеке

Вопрос довольно простой. Это был вопрос, который я получил на экзамене по программированию в университете. Теперь я нигде не мог найти ответ. Кто-нибудь из вас, ребята, имеет представление о том, какое максимальное количество AR в стеке? В с ++.

0

Решение

запись активации (ака кадр стека) содержит хотя бы адрес возврата функции. Например, x86 CALL инструкция помещает адрес возврата в стек, RET выскакивает Итак, теоретический максимум max_stack_size / sizeof(void(*)()), Большинство функций используют аргументы и локальные переменные, которые также могут занимать стек вызовов, а также стеки защиты канареек.

Вы можете узнать max_stack_size с ulimit -s команда bash или программно с getrlimit(RLIMIT_STACK, ...).

3

Другие решения

Других решений пока нет …