Simscript III/Dictionnaire des instructions/RESERVE
L’énoncé reserve alloue dynamiquement l’espace mémoire pour un tableau à k-dimensions. Si l’expression by * est utilisée, seulement l’espace pour le pointeur au tableau est réservé.
Syntaxe : |
|
où quantitéi est un expression arithmétique indiquant le nombre d’éléments pour une dimension donnée du tableau. Si l’expression arithmétique est une valeur réelle, cette valeur sera arrondi en entier.
Exemple :
reserve Flotte(*) as 50;
reserve Matrice (*, *) as n by m ;
reserve A(*) as 50,
m(*, *) as 2*n by m / 4 ,
b(*) as s/t+4,
x(*, *, *) as n by n by k;
reserve code (*, *) as 10 by * ;
for i = 1 to dim.f(triangl(*, *)),
reserve triangl (i, *) as i ;
Les blocs de mémoire réservés permettent de stocker les éléments d’un tableau de façon consécutive en mémoire.
- Pour un tableau à une dimension, le pointeur de base pointe vers un vecteur d’éléments de données.
- Pour un tableau à deux dimensions, le pointeur de base pointe vers un vecteur de pointeurs qui pointe vers les éléments de données d’une ligne du tableau.
- Pour un tableau à trois dimensions, le pointeur de base pointe vers un vecteur de pointeurs vers une ligne, chacun pointant vers un vecteur de pointeurs à une colonne qui pointe vers les éléments de données de la colonne.
- Pour un tableau de dimension supérieure, on applique le même raisonnement.