Как мы можем получить эту информацию? Я предполагаю, что это зависит от ОС, и я использую Windows, поэтому мой вопрос относится к API Windows.
Есть ли какая-нибудь функция, которая может сделать это за нас - получить оставшуюся стековую память для вызывающего потока?
В качестве альтернативы, если мы сможем выяснить следующие детали, мы сможем вычислить это самостоятельно:
CreateThread
). Но если это основной поток, который был запущен ОС для нашей программы, или любой другой поток, который мы не запускали явно, как его найти? esp
, либо взять адрес локальной переменной, чтобы получить точное местоположение. Это для образовательных целей, но я полагаю, что его можно использовать, чтобы не дать рекурсивному алгоритму вызвать переполнение стека - вместо использования какой-либо функции ограничения максимальной глубины.