Как посчитать необходимый размер стека?
При вызове процедуры с параметром a:M, где M=array[1..99,1..99] of integer выдается ошибка Stack overflow error. Как это исправить?
🕛 05.12.2010, 23:24
Нужно увеличить размер стека.Точная формула для расчёта нужного кол-ва байт в стеке:
S=S1+548
где S ─ размер стека;
S1 ─ max{размер памяти любого идентификатора}
Т.е. в данном примере расчитывается так:
S=99*99*2+548=20150;
Т.е. Min размер стека можно указать таким
код Pascal/Delphi
1:
{$M 20150,0,655360}
И если хоть на один байт уменьшить то будет ошибка.