Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
prog:lazarus:types:array [19/03/2021 14:35]
thierry [Allocation]
prog:lazarus:types:array [20/03/2023 18:18] (Version actuelle)
thierry [Libération]
Ligne 2: Ligne 2:
 ===== Array Static ===== ===== Array Static =====
 <code delphi> <code delphi>
-   FormsProps ​= (fpWidth,​fpHeight);​ // Type énuméré +   TArrayOfString =  array[0..19] of string; // Tableau de 20 strings 
-   FormsPropNames ​= array[fpWidth..fpHeight] of string; // Tableau ayant comme index un type énuméré+</​code><​code delphi>​ 
 +   ​TFormsProps ​= (fpWidth,​fpHeight);​ // Type énuméré 
 +   TFormsPropNames ​= array[fpWidth..fpHeight] of string; // Tableau ayant comme index un type énuméré
  
 </​code>​ </​code>​
 +==== Plusieurs dimensions ====
 +Ce dessous la variable ''​vArrayOfWord''​ contient un tableau a deux dimensions de 0..19 et 0..2\\
 +(comme un tableau de 19 sur 2 cases)
 +<code delphi>
 +vArrayOfWord :  array[0..19][0..2] of word;
 +</​code>​
 +
 +
 ===== Array Dynamic ===== ===== Array Dynamic =====
 ==== Déclaration ==== ==== Déclaration ====
Ligne 25: Ligne 35:
   SetLength(vArr2D,​ 10, 10);   SetLength(vArr2D,​ 10, 10);
 </​code>​ </​code>​
-===== Array en Const ===== 
-<code delphi> 
-DayNameShort:​ array [DayStart .. DayEnd] of string= 
-    ( '​Sun','​Mon','​Tue','​Wed','​Thu',​ 
-      '​Fri','​Sat'​ ) ; 
-      </​code>​ 
- 
 ==== Libération ==== ==== Libération ====
 <code delphi> <code delphi>
Ligne 42: Ligne 45:
 </​code>​ </​code>​
 J'ai testé et les trois ont le même effet, ils libèrent la même quantité de mémoire. J'ai testé et les trois ont le même effet, ils libèrent la même quantité de mémoire.
- 
- 
 <​note>​Il est dit [[https://​wiki.freepascal.org/​Dynamic_array/​fr|ICI]]:​\\ <​note>​Il est dit [[https://​wiki.freepascal.org/​Dynamic_array/​fr|ICI]]:​\\
 En affectant ''​nil''​ à une variable tableau dynamique, la mémoire désignée par le pointeur est automatiquement libérée. C'est équivalent à ''​SetLength(MyVariable,​ 0)''​. En affectant ''​nil''​ à une variable tableau dynamique, la mémoire désignée par le pointeur est automatiquement libérée. C'est équivalent à ''​SetLength(MyVariable,​ 0)''​.
  
 Cela peut avoir un effet de bord, si la valeur du pointeur n'est pas valide pour différente raisons (i.e., cela a été lu depuis le disque où cela a été enregistré lors d'une précédente exécution). Pour éviter un tel pointeur invalide, vous devez utiliser ''​FillChar(MyVariable,​sizeof(MyVariable),​ #​0)''​.</​note>​ Cela peut avoir un effet de bord, si la valeur du pointeur n'est pas valide pour différente raisons (i.e., cela a été lu depuis le disque où cela a été enregistré lors d'une précédente exécution). Pour éviter un tel pointeur invalide, vous devez utiliser ''​FillChar(MyVariable,​sizeof(MyVariable),​ #​0)''​.</​note>​
 +===== Array en Const =====
 +<code delphi>
 +DayNameShort:​ array [DayStart .. DayEnd] of string=
 +    ( '​Sun','​Mon','​Tue','​Wed','​Thu',​
 +      '​Fri','​Sat'​ ) ;
 +      </​code>​
 +
 +
 +
 +
 +
 +===== Comparaisons =====
 +  * [[https://​www.arbinada.com/​en/​node/​1411|Comparaison Array / Dynamic Array / TList]]
 +
 +
  
  
 +====== Voir aussi ======
 +  * [[prog:​lazarus:​classes:​tlist]]
  
-==== Sources ====+====== Sources ​& Ressources ======
  
  
Ligne 57: Ligne 75:
   * Exemple de tableau dynamique multidimensionnel : [[https://​wiki.freepascal.org/​Example:​_Multidimensional_dynamic_array/​fr]]   * Exemple de tableau dynamique multidimensionnel : [[https://​wiki.freepascal.org/​Example:​_Multidimensional_dynamic_array/​fr]]
   * [[https://​hdd34.developpez.com/​articles/​artdynarr/​]]   * [[https://​hdd34.developpez.com/​articles/​artdynarr/​]]
 +  *  [[https://​www.arbinada.com/​en/​node/​1411|Comparaison Array / Dynamic Array / TList]]