Exportar (0) Imprimir
Expandir todo
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

delete (Operador) (C++)

Desasigna un bloque de memoria.

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

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.

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

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft