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
Мобильная версия