...dann solltest/mußt DU den Speicher reservieren und dort den Inhalt des Arrays reinkopieren.
Sekunde, der Speicher wurden doch mit
ArrNum := [00,00,00,08];
reserviert. Und dass die Variable mit der Prozedur ins Nirwana geht, ist doch OK; die Prozedur geht ja noch ewig weiter und am Ende wird die Variable nicht mehr gebraucht.
Deine Hinweise mit var, OUT etc. sind natürlich sehr gut; ich kenne das alles, bin aber oft zu faul/träge/gedankenlos/... . Bei
var
vergesse ich immer, wann nötig und wann nicht: Ist TBytes nicht ein Pointer und braucht kein
var
? Es gibt hier irgendwo eine Liste, die müsste ich mir mal an einen guten Ort kopieren.
EDIT: Jupp,
var
wäre nicht nötig, ist aber vielleicht gut zur Erinnerung. So besser?
Delphi-Quellcode:
procedure SwapArray(var Arr:TBytes);
var i,n:integer; TempArr:TBytes;
begin
SetLength(TempArr,Length(Arr));
Move(Arr[0],TempArr[0],Length(Arr));
n := Length(TempArr) - 1;
For i := 0 to n do
Arr[n - i] := TempArr[i];
end;