![]() |
|
![]() ![]() ![]() |
|
ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 1 Всего: 17 |
Есть такой код:
При нажатии на кнопку происходит исключение "Stack overflow". Причем программа прерывается ещё на заголовке функции, т.е. на строке void __fastcall TForm1::Button1Click(TObject *Sender). Если объявления массивов вынести из тела функции, т.е. поместить их сразу за директивами #define, то ещё на этапе линковки проекта происходит ошибка "Assertion failed: !"Bad error code", file VMem.c, line 715". После этого Builder зависает или выгружается. Есть какой-то выход? Или придётся объвлять указатель и динамически выделять память под массивы? -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
а не жирно ли 224 метра на стеке???
само-собой на куче выделять нужно -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
abrekos |
|
|||
Unregistered |
[censored 6] фигня! Правь в настройках компилера размер стека и будет тебе счастье.
![]() |
|||
|
||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 7 Всего: 67 |
зачем рыться в настройках...конечно массив надо в куче заводить...
-------------------- СУВ, Partizan. |
|||
|
||||
JoyEx |
|
|||
![]() Дядя ![]() ![]() Профиль Группа: Участник Сообщений: 323 Регистрация: 21.6.2005 Где: Москва, РФ Репутация: нет Всего: 12 |
а можно объявить массив как const и он попадет в секцию exeшника
![]() -------------------- Если ты уже никого не боишься, значит ты самый страшный |
|||
|
||||
ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 1 Всего: 17 |
Размер большой не спорю. Но при чём здесь вообще стек? Разве память под объявляемые переменные выделяется в нём?
-------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
Neitron |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 3.10.2005 Где: Москва Репутация: нет Всего: 5 |
ksili
А где? ![]() -------------------- Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей. Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ |
|||
|
||||
ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 1 Всего: 17 |
Ну типа в куче
Под прогу выделяется память. В начале сегмент кода и сегмент данных. С другого конца растёт стек. А посередине куча. По-моему там и берётся память под все динамически выделяемую переменные -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
под динамические -- да, но с каких это пор unsigned short Otsek[MaxX][MaxY][MaxZ]; стало объявлять динамические массивы?
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 1 Всего: 17 |
Прошу прощения, попутал. Так как уже стал выделять динамически.
И всё же стек и сегмент данных - это разные вещи. -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
разные -- никто и не спорит.
только ты это к чему?.. -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
chaos |
|
||||||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 1 Всего: 44 |
это только ява все запихивает в кучу(кроме помоиму простейших типов) но это я отвлекся ![]()
юзай векторы раз устал Добавлено @ 12:57 типо
|
||||||
|
|||||||
Neitron |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 3.10.2005 Где: Москва Репутация: нет Всего: 5 |
Он сказад Стал,а не устал
![]() -------------------- Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей. Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ |
|||
|
||||
NixoL |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 2.6.2005 Репутация: нет Всего: нет |
Переменная-то объявляется внутри функции -
а все локальные переменные размещаются в стеке... Если я не прав - поправте. |
|||
|
||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 7 Всего: 67 |
Чувак ![]() -------------------- СУВ, Partizan. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |