![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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);