Невозможно узнать только из компилятора. Переполнение стека происходит из-за переполнения стека. Размер стека растет в зависимости от аргументов, которые принимает функция, локальных переменных, которые использует функция, и оптимизации компилятора. Есть даже некоторые функции C99, которые, я считаю, будут выделять пространство непосредственно из стека.
Предел размера стека определяется компилятором , а не тем, сколько оперативной памяти у вас на компьютере. Итак, сколько вызовов, которые требуется переполнению, больше связано с настройками компилятора, чем с вашей памятью.
Это не то, что вы можете определить априори. По крайней мере, не тривиально.
Стек мегабайта по умолчанию. Минимально возможный стек стека составляет 4 байта в оптимизированной сборке. Практические гораздо больше. ОЗУ не имеет к этому никакого отношения. –
Я могу переполнить стек только одним вызовом функции. – mah