![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Что такое Самоадресуемая запись? [D6]
Tano © (2002-11-18 02:20:00)Насколько я понял, нельзя создать тип - массив записей (и тем более указатель на это).
type
TFieldID = record
Tp :TNodeType;
Offs :Integer;
HD :THD;
end;
TFieldsID = array[0..cMaxFieldsCount] of TFieldID;
pTFieldsID = ^TFieldsID; <- Error 59: "TFieldsID" is not a type identifier
при этом
var
FieldsID :array[0..cMaxFieldsCount] of TFieldID;
имеет право на существование, а
var
FieldsID :TFieldsID;
уже нет.
Компилятор разрешает объявление типа "массив записей", но как его использовать?
В моем карманном справочнике упоминается "Самоадресуемая запись", но "поскольку в книге не используются, рекомендуем [1] и [3]...".
Если кто знает, хотя бы подскажите ключевые слова на английском (все что могло прийти в голову уже перебрал и в Helpe и на форуме).
Thanks!
MBo (2002-11-18 06:16:00) [21]>Tano
Все написанные тобой объявления совершенно корректны и проходят компиляцию.
ЮЮ (2002-11-18 04:53:00) [22]А почему бы просто не
TFieldsID = array of TFieldID;
и
var
FieldsID :TFieldsID;
имеет право на существование, и FieldsID - это только указатель
Правда, придётся работать аккуратно:
Устанавливать длину массива SetLength(FieldsID, xxx), при работе
проверять диапазон Low(FieldsID), Hogh(FieldsID) и длину Length(FieldsID)