Вниз
Скачать: CL | DM;

работа с памятью   Найти похожие ветки 

 
Rel_   (2003-06-05 15:46) [0]

Народ, если не трудно, ответьте на вопрос:
type TMyType = record
a,b : Integer;
c : TList !!!!
end

есть переменная Ist : TMyType; все поля её заполнены, включая c.

Могу ли я сделать сл:
объявить переменную Dest : TMyType, а затем Dest:=Ist;
Переопределена у TList операция присваивания.
Понятно, что я могу обратиться к Dest.a, но могу ли я обратиться к Dest.c.Items[5] и не получить AV


 
Rel_   (2003-06-05 15:49) [1]

Может достаточно просто откопировать кусок памяти, например
что-то вроде ???MemCopy(Addr(Dest), Addr(Ist))- существует ли вообще такая ф-я копирования содержимого по указателю из одного адреса в другой.


 
Palladin ©   (2003-06-05 15:50) [2]

c всеголишь указатель,
а указатели можно присваивать...
другое дело что ты ожидаешь... тотже самый объект или новый но с данными из старого...


 
Vorobyev Sergey   (2003-06-05 15:52) [3]


> Понятно, что я могу обратиться к Dest.a, но могу ли я обратиться
> к Dest.c.Items[5] и не получить AV

А что, проверить долго?


 
Sandman25 ©   (2003-06-05 15:52) [4]

Dest:=Ist;
Эквивалентно
Dest.a:=Ist.a;
Dest.b:=Ist.b;
Dest.c:=Ist.c;
Соответственно после выполнения Ist.c.free
при попытке обратиться к Dest.c.Items[5] может быть AV


 
Skier ©   (2003-06-05 15:56) [5]

>Rel_ (05.06.03 15:46)
Самое главное :
если Dest:=Ist; то скопируется указатель на экземпляр класса, т.е. Dest.c:=Ist.c;
И если для какой-то одной записи потом сделать SomeRec.c.free,
то любое обращение к методам SomeRec.c из других записей даст AV



 
Rel_   (2003-06-05 15:56) [6]

Усё понятно. Спасибо!!!



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.016 c
3-60074
vlv
2003-05-28 14:05
2003.06.19
Проблемы с использованием ADO в сервисном приложении.


1-60165
tasman
2003-06-06 06:51
2003.06.19
Динамическое назначение event у компоненты NMPop3 (из FastNet)


14-60417
Gobul
2003-06-02 13:38
2003.06.19
Глючит пиратская дельфя


1-60171
ТОлег
2003-06-07 11:47
2003.06.19
Как скопировать один компонент в другой...


1-60213
Voyager
2003-06-04 19:37
2003.06.19
Как зная id потока получить его handle?




   Наверх