System.DynArraySetLength

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

procedure DynArraySetLength(var a: Pointer; typeInfo: Pointer; dimCnt: NativeInt; lengthVec: PNativeInt);

C++

extern DELPHI_PACKAGE void __fastcall DynArraySetLength(void * &a, void * typeInfo, NativeInt dimCnt, PNativeInt lengthVec);

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
procedure
function
public
System.pas
System.hpp
System System


Beschreibung

Ändert die Größe eines dynamischen Arrays.

DynArraySetLength ändert die Größe jeder Dimension eines dynamischen Arrays. Siehe die Beschreibung der Eingabeparameter in der folgenden Tabelle:

Parameter Beschreibung
a Zeiger auf das dynamische Ziel-Array.
typeInfo Typinformation des Ziel-Arrays (wird für die Berechnung der Größe eines Elements verwendet).
dimCnt Die Anzahl der Dimensionen des Ziel-Arrays.
lengthVec Ein Array mit Integerwerten, die die Größe jeder Dimension angeben.

Der neu zugewiesene Speicher wird mit Nullen aufgefüllt.

Abbildung des zweidimensionalen dynamischen Arrays

Abbildung des zweidimensionalen dynamischen Arrays


Hinweis: In Delphi können Sie anstatt DynArraySetLength die Prozedur SetLength verwenden.


Beispiel

Im folgenden Code wird die Größe des dynamischen Arrays A mit der Prozedur DynArraySetLength geändert:

 
type
  T2DDynamArray = array of array of String;
 
var
  A: T2DDynamArray;
  Len: array [0 .. 1] of Integer;
 
begin
   Len[0] := 3; // Länge der Dimension 0
   Len[1] := 4; // Länge der Dimension 1
   DynArraySetLength(Pointer(A), TypeInfo(T2DDynamArray), 2, PLongInt(@len[0]));
end.

Dasselbe kann mit der Prozedur SetLength ausgeführt werden (das ist das empfohlene Vorgehen):

begin
   SetLength(A, 3, 4);
end.

Siehe auch