Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés
Esta documentación está archivada y no tiene mantenimiento.

operador delete (C++)

desasigna un bloque de memoria.

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

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.

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

Mostrar: