我有多维数组:
TBMArray = TArray<array of byte>;
和递归函数
function goForSolve(bData: TBMArray; const iSize: integer): TBMArray;
在这个函数中,
tempData: TBMArray;
我需要在不更改 bData 值的情况下更改 tempData。但是当我改变 tempData 时,bData 也会改变。我试图通过函数将 bData 复制到 tempData
procedure copyData(Source: TBMArray; var Dest: TBMArray);
var
iCurEl, iLen: integer;
begin
iLen := length(Source);
setLength(Dest, iLen);
setLength(Dest[0], 1);
for iCurEl := 1 to iLen - 1 do
setLength(Dest[iCurEl], iCurEl + 1);
for iCurEl := Low(Source) to High(Source) do
Dest[iCurEl] := Source[iCurEl];
end;
但结果是一样的
tempData := bData;
看起来像函数复制指针而不是值。