Compartir a través de


operador delete (C++)

desasigna un bloque de memoria.

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

Comentarios

El argumento de la conversión-expresión debe ser un puntero a un bloque de memoria asignada previamente para un objeto creado con nuevo operador.El operador de cancelación tiene un resultado de void escrito y por consiguiente no devuelve un valor.Por ejemplo:

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

Mediante cancelación en un puntero a un objeto no asignado con nuevo proporciona resultados imprevisibles.Puede, sin embargo, utilizar cancelación en un puntero al valor 0.Esta eliminación significa que, cuando nuevo devuelve 0 en el error, eliminando el resultado de una operación con errores de nuevo es inofensiva.Vea Los operadores new y delete para obtener más información.

Los operadores de nuevo y de cancelación también pueden utilizarse para los tipos integrados, incluidos matrices.Si pointer hace referencia a una matriz, corchetes vacíos place antes de pointer:

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

Mediante cancelación el operador en un objeto libere la memoria.Un programa que desreferencia un puntero después de eliminar el objeto puede producir resultados imprevisibles o bloquearse.

Cuando cancelación se utiliza para la desasignación de memoria del objeto de clase de C++., se llama al destructor del objeto antes de que se desasignar cualquier espacio de memoria de objetos (si el objeto tiene un destructor).

Si el operando del operador de cancelación es un valor l modificable, su valor es indefinido después de que se elimine el objeto.

Ejemplo

Ejemplos del uso de cancelación, vea nuevo operador.

Vea también

Referencia

Expresiones con los operadores unarios

Palabras clave de C++

Cómo funciona la cancelación

Mediante la cancelación

los operadores new y delete

función de operador delete