FREEMEM |
Libère la mémoire |
Turbo C |
dos.h |
Syntaxe
int freemem(unsigned SegAdd)
|
Paramètres
Nom |
Description |
SegAdd |
Ce paramètre permet d'indiquer le segment de mémoire à libérer |
Retour
Valeur |
Description |
0 |
Cette valeur permet d'indiquer que l'opération a été un succès. |
-1 |
Cette valeur permet d'indiquer qu'une erreur s'est produite et qu'il n'a pas été possible de libérer la mémoire. Dans ce cas, il sera possible d'obtenir des informations supplémentaires en consultant la variable errno. |
Description
Cette fonction permet de libérer un segment de mémoire alloué par la fonction «allocmem».
Remarques
- Les microprocesseurs 80x86 utilisent un adressage de la mémoire selon le format suivant «segment:offset». Toutefois, cette fonction utilise toujours un déplacement (offset) égalant à 0, donc vous aurez toujours une adresse «segment:0».
- Lorsque l'adressage utilise uniquement par la partie segment pour se repérer, on dit qu'on réservé une quantité de mémoire réservé en paragraphe. Un paragraphe correspond à 16 octets.
- Les codes d'erreurs retournés par la variable «errno» correspondent généralement à ceci :
ENOMEM |
Cette constante permet d'indiquer qu'il n'y a pas d'espace de disponible. |
- Cette fonction utilise l'interruption DOS (21h), fonction 49h afin de libérer la mémoire.
Exemple
Voici un exemple montrant comment alloué de la mémoire puis la libérer immédiatement après utilisation :
- #include <stdio.h>
- #include <stdlib.h>
- #include <dos.h>
-
- int main() {
- unsigned SegmentAddress;
- int Status=allocmem(10,&SegmentAddress);
- if(Status == 0) {
- /* Mettre les traitements sur la mémoire alloué ici ! */
- freemem(SegmentAddress);
- } else {
- printf("Erreur, il n'a pas été possible d'alloué de la mémoire !\n");
- printf("Code d'erreur = %i\n",Status);
- }
- return 0;
- }
Voir également
Langage de programmation - Turbo C - Référence de fonctions - allocmem
Langage de programmation - Turbo C - Référence de fonctions - free
Langage de programmation - Turbo C - Référence de fonctions - setblock
Dernière mise à jour : Dimanche, le 28 juin 2015