Проверка доступного размера стека в C

Сработает удаление адреса mingw локальной переменной из стека. Затем mingw в более вложенном вызове stacks вы можете вычесть адрес другого stack локального, чтобы найти разницу mingw между ними

size_t top_of_stack;

void Main()
{
  int x=0;
  top_of_stack = (size_t) &x;

  do_something_very_recursive(....)
}

size_t SizeOfStack()
{
  int x=0;
  return top_of_stack - (size_t) &x;
} 

Если ваш код многопоточный, вам c нужно иметь дело с сохранением stack переменной top_of_stack для stack каждого потока.

c

stack

mingw

2022-10-22T11:46:19+00:00