siehe
Unit System:
Delphi-Quellcode:
{ Dynamic array helper functions }
procedure _DynArrayHigh;
procedure _DynArrayClear(var a: Pointer; typeInfo: Pointer);
procedure _DynArrayLength;
procedure _DynArraySetLength;
procedure _DynArrayCopy(a: Pointer; typeInfo: Pointer; var Result: Pointer);
procedure _DynArrayCopyRange(a: Pointer; typeInfo: Pointer; index, count : Integer; var Result: Pointer);
procedure _DynArrayAsg;
procedure _DynArrayAddRef;
Die dyn. Array-Variable ist ein Zeiger auf den Anfang der enthaltenen Daten
Delphi-Quellcode:
record
refCount: Integer
length: Integer
data: array[0..x] of ...;
end;
P := @data[0];
Wobei es egal ist, wie ein dyn. Array verwaltet wird.
- dynamische Arrays, Strings und Objekte sollten nicht über
DLL-Grenzen hinweg verwaltet werden. (abgesehn BPLs sind im Spiel)
- SetLength macht selber nichts kaputt
Wenn, dann hat du wo Anders ein Problem.