Переполнение стека из локальных переменных?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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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