如何从类型 TByteArray 获取数组作为类型 TByteArray 的更大数组的一部分?
How to obtain an array from type TByteArray as part of a larger array from type TByteArray?
我定义了一个大类型的动态数组aArray。现在想要第二个数组 bArray 标记 aArray 中的某个区域而不需要复制!
type
TByteArray = array of Byte;
implementation
procedure SomeCode;
var
aArray : TByteArray;
bArray : TByteArray;
begin
setlength(aArray, 30);
aArray[4] := 12;
// here want to have bArray to hold 20 Bytes starting from Byte 5 in aArray
if bArray[0] = aArray[4] then begin
writeln('All OK');
end;
end;
这是不可能的。动态数组包含位于数组第一个元素之前的元数据。这与您想要第一个元素位于另一个数组中间的动态数组不兼容。
您可能需要使用指向子数组第一个元素的指针来解决您的问题。
我定义了一个大类型的动态数组aArray。现在想要第二个数组 bArray 标记 aArray 中的某个区域而不需要复制!
type
TByteArray = array of Byte;
implementation
procedure SomeCode;
var
aArray : TByteArray;
bArray : TByteArray;
begin
setlength(aArray, 30);
aArray[4] := 12;
// here want to have bArray to hold 20 Bytes starting from Byte 5 in aArray
if bArray[0] = aArray[4] then begin
writeln('All OK');
end;
end;
这是不可能的。动态数组包含位于数组第一个元素之前的元数据。这与您想要第一个元素位于另一个数组中间的动态数组不兼容。
您可能需要使用指向子数组第一个元素的指针来解决您的问题。