DISPOSE |
Dispose |
---|---|
Free Pascal | System |
Syntaxe
Procedure Dispose(P:Pointer); |
Procedure Dispose(P:TypedPointer;Des:TProcedure); |
Paramètres
Nom | Description |
---|---|
p | Ce paramètre permet d'indiquer le pointeur à traiter. |
Des | Ce paramètre permet d'indiquer le nom du destructeur de l'objet. |
Description
Cette procédure permet de libérer une partie de la mémoire préalablement alloué par la procédure New.
Remarques
- Le premier syntaxe de Dispose libère la mémoire allouée avec un appel à New. Le pointeur p doit être typé. La mémoire libérée est renvoyée dans la mémoire de tas.
- La seconde syntaxe de Dispose accepte comme premier paramètre un pointeur vers un type d'objet et comme second paramètre le nom d'un destructeur de cet objet. Le destructeur sera appelé et la mémoire allouée à l'objet sera libérée.
- Une erreur d'exécution se produit si le pointeur ne pointe pas vers un emplacement dans la mémoire de tas.
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
Voir également
Langage de programmation - Free Pascal - Référence de procédures et fonctions - «New»
Langage de programmation - Free Pascal - Référence de procédures et fonctions - «Getmem»
Langage de programmation - Free Pascal - Référence de procédures et fonctions - «Freemem»
Dernière mise à jour : Samedi, le 18 juillet 2015