Переполнение стека из локальных переменных?C++

Программы на C++. Форум разработчиков
Anonymous
Переполнение стека из локальных переменных?

Сообщение Anonymous »

Позвольте мне начать с того, что мой вопрос не о переполнении стека, а о том, чтобы это произошло, без ошибок времени компиляции \ предупреждения. /p>

void endlessRecursion()
{
int x = 1;
if(x) endlessRecursion(); //the 'if' is just to hush the compiler
}
< /code>

Мой вопрос: возможно ли переполнить стек, объявив слишком много локальных переменных.
Очевидный способ - просто объявить огромный массив, как SO: < /p>

void myStackOverflow()
{
char maxedArrSize[0x3FFFFFFF]; // < 1GB, compiler didn't yell
}
< /code>

На практике даже 0xfffff Bytes вызывает переполнение стека на моей машине < /p>

Итак, мне было интересно: < /p >
  • Поскольку я не пробовал, если я объявляю достаточно переменных, будет ли переполнение стека
    ? < /li>
    Есть ли способ использовать препроцессорные или другие «инструменты времени компиляции» (например, метапрограммирование шаблона C ++), чтобы сделать первое, то есть заставьте его объявить множество локальных переменных , каким -то образом заставив его зацикнуть? Если да, то как? И если это так, пожалуйста, объясните.


Подробнее здесь: https://stackoverflow.com/questions/231 ... -variables

Вернуться в «C++»