System.FreeMem
Delphi
procedure FreeMem(var P: Pointer; [ Size: Integer]); overload;
procedure FreeMem(var P: Pointer; [ Size: Integer]); overload;
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
procedure | public | System.pas | System | System |
Description
FreeMem libère un bloc de mémoire préalablement alloué avec GetMem.
Utilisez cette procédure pour libérer un bloc de mémoire obtenu avec GetMem.
Le paramètre Size
spécifie la taille en octets de la variable dynamique à libérer. Si spécifiée, elle doit représenter exactement le nombre d'octets préalablement alloués à cette variable par GetMem.
Après l'appel de cette procédure, la valeur du paramètre P
n'est pas définie.
Remarques :
- FreeMem n'est pas disponible dans C++. Dans C++, vous pouvez utiliser FreeMemory.
- Si un pointeur sur de la mémoire non allouée est transmis à FreeMem, le comportement de l'application dépend beaucoup de la plate-forme cible et s'effectue de la façon suivante :
- Pour les plates-formes Windows, EInvalidPointer est déclenchée dans des applications utilisant System.SysUtils et une erreur d'exécution est générée pour les applications qui n'utilisent pas System.SysUtils. (FastMM, le gestionnaire mémoire par défaut, peut détecter un pointeur non valide.)
- Pour les plates-formes OS X et iOS, FreeMem ne déclenche pas d'exception EInvalidPointer si un pointeur non valide est transmis à Dispose.