В C/С++ у вас всегда есть
SizeOf(array[N] of T) = N * SizeOf(T);
В Pascal/Delphi вы можете использовать "упакованный массив", чтобы быть уверенным, что указанное выше утверждение верно, но имеет ли спецификатор "упакованный" какое-либо практическое значение для массивов в Delphi? Я не могу создать пример "распакованного" массива, массивы кажутся всегда "упакованными":
type
A = array[0..2] of Byte;
B = array[0..99] of A;
C = packed record
C1, C2, C3: Byte;
end;
D = array[0..99] of C;
procedure TForm10.Button1Click(Sender: TObject);
begin
Assert(SizeOf(A) = 3);
Assert(SizeOf(B) = 300);
Assert(SizeOf(D) = 300);
end;
(Структуры C/С++ и записи Delphi различны - их можно распаковать так, чтобы размер структуры был больше, чем сумма размеров полей из-за выравнивания полей.)