« Simscript III/Dictionnaire des instructions/RESERVE » : différence entre les versions

Contenu supprimé Contenu ajouté
Nouvelle page : L<nowiki>’</nowiki>énoncé <font color="#0000FF">reserve</font> alloue dynamiquement l<nowiki>’</nowiki>espace mémoire pour un tableau à ''k''-dimensions. Si l<nowiki>’</now...
(Aucune différence)

Version du 16 novembre 2008 à 20:14

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 :


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.