Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Как посчитать необходимый размер стека?


Автор: Fedor 20.4.2005, 17:26
Цитата
При вызове процедуры с параметром a:M, где M=array[1..99,1..99] of integer выдается ошибка Stack overflow error. Как это исправить?


Нужно увеличить размер стека.
Точная формула для расчёта нужного кол-ва байт в стеке:
S=S1+548
где S ─ размер стека;
    S1 ─ max{размер памяти любого идентификатора}
Т.е. в данном примере расчитывается так:
S=99*99*2+548=20150;
Т.е. Min размер стека можно указать таким
Код

{$M 20150,0,655360}

И если хоть на один байт уменьшить то будет ошибка.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)