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 [05/04/2020 13:06]
thierry [Libération]
prog:lazarus:types:array [20/03/2023 18:18] (Version actuelle)
thierry [Libération]
Ligne 1: Ligne 1:
 ====== Array ====== ====== Array ======
 ===== Array Static ===== ===== Array Static =====
 +<code delphi>
 +   ​TArrayOfString =  array[0..19] of string; // Tableau de 20 strings
 +</​code><​code delphi>
 +   ​TFormsProps = (fpWidth,​fpHeight);​ // Type énuméré
 +   ​TFormsPropNames = array[fpWidth..fpHeight] of string; // Tableau ayant comme index un type énuméré
 +
 +</​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 29: Ligne 44:
   vArr := nil;   vArr := nil;
 </​code>​ </​code>​
 +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 42: 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]]