Вниз
Скачать: 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.013 c
3-60084
YuraKiller
2003-05-28 21:32
2003.06.19
Как с клиента создать пользователя?


14-60330
Malder
2003-05-31 00:04
2003.06.19
Всем фанатам Star Control


1-60163
Drin
2003-06-07 02:28
2003.06.19
TListView


3-60059
Vitas2
2003-05-28 14:08
2003.06.19
SQL2


3-60069
alienka
2003-05-27 11:11
2003.06.19
KeyList в колонке DBGridEh




   Наверх