DISPOSE |
Disposé |
---|---|
Turbo Pascal 1+ | System |
Syntaxe
Procedure Dispose(p:Pointer); |
Procedure Dispose(p:Pointer; Destructor); |
Paramètres
Nom | Description |
---|---|
p | Ce paramètre permet d'indiquer le pointeur à traiter |
Destructor | Ce paramètre permet d'indiquer le destructeur à utiliser pour le traiterment. |
Description
Cette procédure permet de libérer une partie de la mémoire préalablement alloué par la procédure New.
Remarques
- Le paramètre p est une variable de pointeur de tout type de pointeur précédemment attribué par la procédure New ou à laquelle une instruction explicite a attribué une valeur explicite. La procédure Dispose détruit la variable référencée par p et renvoie sa région mémoire au tas. Après un appel à la procédure Dispose, la valeur de p devient indéfinie et il est erroné de faire ensuite référence à P^.
- La procédure Dispose a été étendu pour permettre l'appel d'un destructeur en tant que deuxième paramètre, afin de disposer d'une variable de type objet dynamique. Dans ce cas, P est une variable de pointeur pointant sur un type d'objet et Destruct est un appel au destructeur de ce type d'objet.
- Si P ne pointe pas vers une région de la mémoire du segment de mémoire, une erreur d'exécution se produit.
- Les procédures Dispose et FreeMem ne peuvent pas être utilisés de manière interchangeable avec Mark et Release si certaines règles ne sont pas observées.
Exemple
Voici un exemple d'une utilisation typique de cette procédure :
- Program DisposeSamples;
-
- Type
- personne=Record
- salutation:Char;
- prenom:String[30];
- nomfamille:String[30];
- ville:String[30];
- pays:String[30];
- province:String[30];
- End;
-
- Var
- a:^personne;
-
- BEGIN
- New(a);
- If(a <> NIL)Then Begin
- a^.salutation := 'M';
- a^.prenom := 'Sylvain';
- a^.nomfamille := 'Maltais';
- a^.ville := 'Laval';
- a^.pays := 'CA';
- a^.province := 'QC';
- WriteLn('Prénom : ',a^.prenom);
- WriteLn('Nom : ',a^.nomfamille);
- WriteLn('Ville : ',a^.ville);
- Dispose(a);
- End
- Else
- Begin
- WriteLn('Manque de mémoire');
- End;
- END.
on obtiendra le résultat semblable suivant :
Prénom : SylvainNom : Maltais
Ville : Laval
Référence
Aide-mémoire de Turbo Pascal versions de 3 à 6, Edition Marabout, De Groote, Virga, 1992, ISBN: 2-501-01833-8, page 144.
Le grand livre du Turbo & Borland Pascal 7.0, Edition Micro Application, Reiner Scholles, 1993, ISBN: 2-86899-873-9, page 1223.
Dernière mise à jour : Dimanche, le 25 janvier 2015