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 [17/05/2021 09:37] thierry [Array en Const] |
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 35: | 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]]:\\ | ||
+ | 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> | ||
===== Array en Const ===== | ===== Array en Const ===== | ||
<code delphi> | <code delphi> | ||
Ligne 45: | Ligne 59: | ||
- | <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)''. | ||
- | 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> | ||
===== Comparaisons ===== | ===== Comparaisons ===== | ||
* [[https://www.arbinada.com/en/node/1411|Comparaison Array / Dynamic Array / TList]] | * [[https://www.arbinada.com/en/node/1411|Comparaison Array / Dynamic Array / TList]] | ||
Ligne 55: | Ligne 66: | ||
- | ===== Sources & Ressources ===== | + | ====== Voir aussi ====== |
+ | * [[prog:lazarus:classes:tlist]] | ||
+ | |||
+ | ====== Sources & Ressources ====== | ||
Ligne 61: | 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]] | ||