Partager via


delete, opérateur (C++)

Libère un bloc de mémoire.

[::] delete cast-expression
[::] delete [ ] cast-expression

Notes

L'argument d'expression de cast doit être un pointeur vers un bloc de mémoire précédemment allouée pour un objet créé avec nouvel opérateur. L'opérateur supprimer obtient un résultat de type void et ne retourne donc pas de valeur. Par exemple :

CDialog* MyDialog = new CDialog;
// use MyDialog
delete MyDialog;

L'utilisation de supprimer sur un pointeur vers un objet non alloué avec new génère des résultats imprévisibles. Vous pouvez toutefois utiliser supprimer sur un pointeur avec la valeur 0. Cette disposition signifie que, lorsque nouveau retourne 0 en cas d'échec, supprimer le résultat d'une opération nouveau est sans danger. Consultez Les Opérateurs nouveau supprimer pour plus d'informations.

Les opérateurs nouveau et supprimer peuvent également être utilisés pour des types intégrés, notamment les tableaux. Si pointer fait référence à un tableau, placez des crochets vides avant pointer:

int* set = new int[100];
//use set[]
delete [] set;

L'utilisation de l'opérateur supprimer sur un objet libère sa mémoire. Un programme qui déréférence un pointeur après que l'objet soit supprimé peut entraîner des résultats imprévisibles ou peut échouer.

Lorsque supprimer est utilisé pour libérer la mémoire d'un l'objet de classe C++, le destructeur de l'objet est appelé avant que la mémoire de l'objet ne soit libérée (si l'objet a un destructeur).

Si l'opérande à l'opérateur supprimer est une l-value modifiable, sa valeur sera indéfinies après que l'objet soit supprimé.

Exemple

Pour obtenir des exemples sur l'utilisation de supprimer, consultez nouveaux opérateurs.

Voir aussi

Référence

Expressions avec opérateurs unaires

Mots clés C++

Fonctionnement de delete

Utilisation de delete

Opérateurs new et delete

Fonction de l'opérateur delete