Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.27;
Скачать: CL | DM;

Вниз

Как узнать индекс элемента массива, имея указатель.   Найти похожие ветки 

 
Александр-И   (2003-10-14 19:51) [0]

Имеется : динамический массив структур типа record. Размер массива установлен с помощью SetLength. Есть некая функция, которая возвращает указатель на отдельный элемент массива. Как узнать индекс этого элемента?


 
default ©   (2003-10-14 19:55) [1]

через адрес массива, адрес элемента и руководствуясь размером записи
это арифметика


 
Александр-И   (2003-10-14 19:57) [2]

Более конкретно: указатель я получаю из TTreeView, в который они ранее были помещены с помощью AddObject, AddChildObject.


 
Александр-И   (2003-10-14 20:00) [3]

>default © (14.10.03 19:55) [1]
>через адрес массива, адрес элемента и руководствуясь размером >записи
>это арифметика

Это я знаю. А попроще нельзя? И еще вопрос: если я несколько раз переназначил размер массива с помощью SetLength, он в памяти по-прежнему хранится единым непрерывным куском (т.е. адреса элементов непрерывной цепочкой)?


 
default ©   (2003-10-14 20:09) [4]

"Это я знаю. А попроще нельзя?"
а зачем? вроде и так просто
"И еще вопрос: если я несколько раз переназначил размер массива с помощью SetLength, он в памяти по-прежнему хранится единым непрерывным куском (т.е. адреса элементов непрерывной цепочкой)?"
да по-моему
(точнее физически это может быть и не непрерывный кусок, но
на адресах это не отразится)


 
Романов Р.В. ©   (2003-10-14 22:18) [5]


> если я несколько раз переназначил размер массива с помощью
> SetLength, он в памяти по-прежнему хранится единым непрерывным
> куском


Куском то одним но по другому адресу. Храни в TTreeNode.Data номер элемента масива.



Страницы: 1 вся ветка

Текущий архив: 2003.10.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.032 c
1-89327
satron
2003-10-16 16:01
2003.10.27
Как выделить строку в RichEdit зная только ее номер ???


1-89206
Checist [root]
2003-10-15 13:58
2003.10.27
Сохранение картинки из веб страници


3-89185
Empleado
2003-09-30 16:26
2003.10.27
Q: lookup in ADODataSet (SQL2000)


4-89661
Bes
2003-08-22 16:06
2003.10.27
WH_SHELL?


6-89413
Ilg
2003-09-03 11:33
2003.10.27
Сетевое имя компьютера