Simscript III/Dictionnaire des instructions/RELEASE
Apparence
L’énoncé release désalloue l’espace mémoire alloué à un tableau. Les éléments du tableau ne sont donc plus disponibles.
Syntaxe : |
|
où Variable peut nommé un tableau de variables, d’ensembles ou d’attributs.
Exemple :
release x(*); ‘‘ désalloue le tableau x (une dimension)
release y(*); ‘‘ désalloue le tableau y (une dimension)
release Tableau(*, *); ‘‘ désalloue le tableau Tableau (deux dimensions)
release x(*), y(*), Tableau(*, *); ‘‘ désalloue les tableaux x, y, Tableau
release Groupe(*); ‘‘ désalloue le tableau d’ensembles Groupe
‘‘ désallocation partielle d’un tableau
define table as a 2-dim double array ;
reserve table(*, *) as 3 by 4;
….
release table(2, *);
reserve table(2, *) as 8;
Si un objet a un attribut qui est un tableau, il est nécessaire que l’espace soit libéré avant de détruire l’objet. Pour permettre de désallouer un tel tableau, l’énoncé release doit être spécifié dans une méthode qui est spécifiée dans un énoncé before destroying et appelée automatiquement avant que l’objet soit détruit.
begin class Objet; ‘‘ désalloue le tableau x (une dimension)
every Objet has an Attribut_1,
an Attribut_2,
and a Libérer method;
define Attribut_1, Attribut_2 as 1-dim double arrays;
before destroying an Objet, call Libérer ;
end; ‘‘ classe objet
method Objet’Libérer
‘‘ Libérer l’espace alloué aux tableaux avant de détruire l’objet
release Attribut_1(*), Attribut_2(*);
end ‘‘ Objet’Libérer
define unObjet as a Objet reference variable;
create unObjet;
reserve Attribut_1(unObjet)(*), Attribut_2(unObjet) (*) as 25;
.....
destroy unObjet; ‘‘ La méthode libérer est automatique appelée avant de détruire l’objet