System.DynArraySetLength

De RAD Studio API Documentation
Aller à : navigation, rechercher

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

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.

Voir aussi