Différences
Ci-dessous, les différences entre deux révisions de la page.
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 14:16] 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 30: | 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 45: | 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]] | ||