Вниз
Скачать: 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.012 c
1-60146
bkv
2003-06-06 17:17
2003.06.19
Проблема с сервисом!!


1-60122
vlv
2003-06-06 13:02
2003.06.19
Есть ли готовые пакеты компонент по выводу отчетов в Excel, Word


14-60405
Top Gun
2003-05-31 16:55
2003.06.19
Мешают сообщения при отладке


14-60421
Fredericco
2003-06-03 17:47
2003.06.19
Вопрос про корректность кода.


1-60261
vv40
2003-06-05 11:18
2003.06.19
наследник от TImageList




   Наверх