System.DynArraySetLength
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
- 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.