Operador delete (C++)
Desaloca um bloco de memória.
[::] delete cast-expression
[::] delete [ ] cast-expression
Comentários
O argumento expressão de conversão deve ser um ponteiro para um bloco de memória alocado anteriormente para um objeto criado com o novo operador. O operador delete tem um resultado do tipo void e, portanto, não retorna um valor. Por exemplo:
CDialog* MyDialog = new CDialog;
// use MyDialog
delete MyDialog;
Usar delete em um ponteiro para um objeto não alocado com new tem resultados imprevisíveis. No entanto, você pode usar delete em um ponteiro com o valor 0. Esse provisionamento significa que, quando new retorna 0 em falha, a exclusão do resultado de uma falha na operação new é inofensiva. Consulte Os operadores New e Delete para obter mais informações.
Os operadores new e delete também podem ser usados para tipos internos, inclusive matrizes. Se pointer fizer referência a uma matriz, coloque parênteses vazios antes de pointer:
int* set = new int[100];
//use set[]
delete [] set;
Usar o operador delete em um objeto desaloca sua memória. Um programa que remova a referência de um ponteiro após a exclusão do objeto pode ter resultados imprevisíveis ou falhar.
Quando delete é usado para desalocar a memória para o objeto de classe do C++, o destruidor do objeto é chamado antes que a memória do objeto seja desalocada (se o objeto tiver um destruidor).
Se o operando para o operador delete for um l-value modificável, seu valor será indefinido após a exclusão do objeto.
Exemplo
Para obter exemplos de uso de delete, consulte Operador new.