Compartir a través de


delete (Operador) (C++)

Desasigna un bloque de memoria.

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

Comentarios

El argumento de la expresión de conversión cast-expression debe ser un puntero a un bloque de memoria asignado previamente para un objeto creado con el operador new. El operador delete tiene un resultado de tipo void y, por tanto, no devuelve ningún valor. Por ejemplo:

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

El uso de delete en un puntero a un objeto no asignado con new tiene resultados impredecibles. Sin embargo, se puede utilizar delete en un puntero con el valor 0. Este aprovisionamiento significa que, cuando new devuelve 0 en caso de error, es inocuo eliminar el resultado de una operación new con errores. Vea Los operadores new y delete para obtener más información.

Los operadores new y delete también se pueden utilizar para tipos integrados, incluidas matrices. Si pointer hace referencia a una matriz, ponga corchetes vacíos delante de pointer:

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

El uso del operador delete en un objeto desasigna su memoria. Un programa que desreferencia un puntero después de eliminarse el objeto puede producir resultados impredecibles o bloquearse.

Cuando se utiliza delete para desasignar memoria para un objeto de clase de C++, se llama al destructor del objeto antes de que se desasigne la memoria del objeto (si el objeto tiene un destructor).

Si el operando del operador delete es un valor L modificable, su valor está sin definir después de que se elimine el objeto.

Ejemplo

Para obtener ejemplos del uso de delete, vea new (operador).

Vea también

Referencia

Expresiones con operadores unarios

Palabras clave de C++

Cómo eliminar trabajos

Usar delete

Operadores new y delete

operator delete (Función)