Форум: "Основная";
Текущий архив: 2003.06.19;
Скачать: [xml.tar.bz2];
Внизработа с памятью Найти похожие ветки
← →
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 вся ветка
Форум: "Основная";
Текущий архив: 2003.06.19;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c