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

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

Array Of array +Pointer = Ошибка при выходе


HighIon ©   (2007-05-27 19:36:00) 

Почему такой код вызывает ошибку при выходе и что сделать?

type
 TDoubleArray = array of Double;
const
 x1: array [0..19] of Double = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20);
 z: array [0..1] of TDoubleArray = (@x1, @x1);


Это просто объявлено, пока не используется.


Сергей М.   (2007-05-28 09:20:00) [1]


> Почему такой код вызывает ошибку при выходе ..


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


> что сделать ?


Устранить отсебячину и инициализировать дин.массивы как положено, с пом. процедуры SetLength()


koha   (2007-05-27 21:02:00) [2]

http://www.delphimaster.ru/cgi-bin/forum.pl?n=3&id=1180147092


AlexanderMS   (2007-05-27 19:39:00) [3]


> Это просто объявлено, пока не используется.

Странно, у меня всё нормально. Объявил, запустил, закрыл. Хотя не нравится запись (@x1, @x1);


Наверх

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