Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Для новичков > тройной массив - stack overflow |
Автор: pegorov 1.6.2009, 10:43 | ||
Есть сверхпримитивный код.
При выполнении ругается на переполнение стека. Из-за чего так может быть, я мозг уже сломал =) |
Автор: Frees 1.6.2009, 10:52 | ||
потомучто cntr это стековая переменная и места в стеке ей не хватило
|
Автор: pegorov 1.6.2009, 10:58 |
Гран мерси, в понедельник утром башка не варит вообще =) |
Автор: GN1 1.6.2009, 11:29 | ||
Проверил у себя на D09:
В настройках компилятора стоит "Максимальный размер стека"- 1048580 байт Переменная UInt32 (longint) занимает в памяти 4 байта, т.е.: 62 - 1000192 63 - 1048580 (> 1048576) Компилятор тебе русским языком и говорит, что стек переполнен ![]() Кста, как правильно на русском: стек, стэк или стёк? Добавлено через 51 секунду Опоздал ![]() |
Автор: Alexeis 1.6.2009, 11:38 |
256 * 256 * 256 * 4 = 64 Мб. В принципе, можно в настройках проекта увеличить размер стека. |
Автор: CodeMonkey 1.6.2009, 11:45 | ||
В данном случае можно, но не нужно. А то так можно дойти до... был тут один орех, которому всё было мало. Так вместо того, чтобы использовать динамические массивы, он вписал минимальный размер стека в 50 Гб (не, в окошке "плохая" Delphi не дала - так он директивой вписал в код, причём в каждом модуле) и удивлялся: а чего это его программа на Vista не работает? Не иначе как Билл Гейтс виноват! |