Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Массив больше 1 Мб???


boalse ©   (2005-03-10 09:18:00) 

Объявляю массив, например:
A: array [1..49] of TMyType;
Где TMyType созданный мною тип данных размером, 21 038 байт, итого размер массива A получается 1006,7 Кбайт. Если задать верхнюю гарицу на 1 меньше, т.е. 48, общий размер A получится 986,1 КБайт. Так вот, в первом случае программа после каких-либо действий (не пойму после каких конкретно) с массивом А, может закрыться даже ничего не сообщив об ошибке, а во втором случае всё работает нормально. Неужели всё дело в размере массива?


KSergey   (2005-03-10 13:40:00) [1]

Билдом перекомпилируются все файлы проекта
сомпиляцией - только те, что изменились (по мнению среды) и связанные с ними. Иногда она ошибается (при сложных взаимосвязях). Иногда (как здесь) не считает, что в файлах произошли изменения.


Erik1   (2005-03-10 13:34:00) [2]

Сама коимпиляция по Ctrl+F9 ничем неотличается от билд, возможно есть отличия какие файлы компилируются.


BoAlSe   (2005-03-10 12:50:00) [3]

> Да. не забыть после этого перебилдить

Кстати, давно хотел спросить, чем отличаестя билд от простой компилляции? Можно ли просто Ctrl+F9 или нужно обязательно билдить проект?


Erik1   (2005-03-10 12:32:00) [4]

При размере элемента в 21 038Кб стоит использовать TList который тоже в пинципе похож на масив.


KSergey   (2005-03-10 10:57:00) [5]

в свойисвах компилера поставить range checked
Скорее всего есть ошибка обращения за границу массива.


KSergey   (2005-03-10 10:57:00) [6]

Да. не забыть после этого перебилдить


Ozone   (2005-03-10 10:00:00) [7]

> hoap=> heap


Ozone   (2005-03-10 09:55:00) [8]


>  [8] boalse ©   (10.03.05 09:43)


А надо бы. Хотя если ты динамический массив используешь, то править нужно размер hoap-памяти.


boalse   (2005-03-10 09:43:00) [9]

Да я с таким уже много раз встречался. Создаю динамический (глобальный) массив, засовываю туда объекты, например ботов, когда игру делал. Как только размер массива переваливается за какой-то предел, начинаются глюки. Я уже подобный вопрос задавал, сказали что руки кривые, но не до такой же степени!


boalse   (2005-03-10 09:43:00) [10]

Размер стека пока не проверял, нет возможности.


Anatoly Podgoretsky   (2005-03-10 09:40:00) [11]

А размер стека у тебя достаточный?


boalse   (2005-03-10 09:36:00) [12]


> jack128 ©   (10.03.05 09:22) [1]
переменная локальная??


Переменная локальней некуда.


Antonn   (2005-03-10 09:25:00) [13]

А в чем?

Тоже заинтересовал вопрос, т.к. имел похожую проблему, но не знал, откуда ошибка вылазит.


jack128   (2005-03-10 09:22:00) [14]

переменная локальная?? Тогда может и в массиве дело.. Увеличь максимальный размер стека Project/Options/Linker/Max stack size


КаПиБаРа   (2005-03-10 09:22:00) [15]

boalse ©   (10.03.05 9:18)
Неужели всё дело в размере массива?

Нет.


Anatoly Podgoretsky   (2005-03-10 09:22:00) [16]

Дело не в бобине.


Наверх

Титульная страница Поиск, карта сайта Написать письмо