S: Byte;
E: Byte;
end;
var
a, b: TStartEnd;
begin
{1} a.S := 1;
{2} a.E := 2;
{3} b := a;
{4} a.S := 3;
{5} a.E := 4;
end;
Подскажите, я правильно понимаю, что на 4-ой операции происходит новое выделение памяти для переменной a?
Нет, выделение памяти было на строчке 3, для переменной b. Здесь операция копирования
Копирование вместе с S и E, или только копирование ссылки в b?
Копирование данных, не ссылки
А для чего ж тогда записи нужны? В чём смыл?
Ну так это структура
На строке 3 копирование памяти, а не выделение
Я так и написал
Компилятор вполне может не выделять память до момента использования
Не так написал
Это частный случай оптимизации, не имеет отношения к вопросу
Обсуждают сегодня