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);
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
procedure function |
public | System.pas System.hpp |
System | System |
Description
Redimensionne un tableau dynamique.
DynArraySetLength redimensionne chaque dimension d'un tableau dynamique. La description des paramètres d'entrée est fournie dans le tableau suivant :
Paramètre | Description |
---|---|
a
|
Pointeur sur le tableau dynamique cible. |
typeInfo
|
Information de type du tableau cible (utilisée pour calculer la taille d'un élément). |
dimCnt
|
Le nombre de dimensions du tableau cible. |
lengthVec
|
Un tableau avec des entiers indiquant la taille de chaque dimension. |
La nouvelle mémoire allouée est remplie de zéros.
- Illustration du tableau dynamique 2D
- Remarque : Dans Delphi, vous pouvez utiliser la procédure SetLength au lieu de DynArraySetLength.
Exemple
Dans le code suivant, le tableau dynamique A est redimensionné en utilisant la procédure
type
T2DDynamArray = array of array of String;
var
A: T2DDynamArray;
Len: array [0 .. 1] of Integer;
begin
Len[0] := 3; // Length of the dimension 0
Len[1] := 4; // Length of the dimension 1
DynArraySetLength(Pointer(A), TypeInfo(T2DDynamArray), 2, PLongInt(@len[0]));
end.
La même opération peut être effectuée avec la procédure SetLength (c'est l'approche recommandée) :
begin
SetLength(A, 3, 4);
end.