Nova Biblioteca C ++ - operador delete []
Descrição
Ele desaloca o espaço de armazenamento da matriz.
Declaração
A seguir está a declaração para o operador delete [].
void operator delete[] (void* ptr) throw(); (ordinary delete)
void operator delete[] (void* ptr, const std::nothrow_t& nothrow_constant) throw(); (ordinary delete)
void operator delete[] (void* ptr, void* voidptr2) throw(); (placement delete)
C ++ 11
void operator delete[] (void* ptr) noexcept; (ordinary delete)
void operator delete[] (void* ptr, const std::nothrow_t& nothrow_constant) noexcept; (nothrow delete)
void operator delete[] (void* ptr, void* voidptr2) noexcept; (placement delete)
C ++ 14
void operator delete[] (void* ptr) noexcept; (ordinary delete)
void operator delete[] (void* ptr, const std::nothrow_t& nothrow_constant) noexcept; (nothrow delete)
void operator delete[] (void* ptr, void* voidptr2) noexcept; (placement delete)
void operator delete[] (void* ptr, std::size_t size) noexcept; (ordinary delete with size)
void operator delete[] (void* ptr, std::size_t size,
const std::nothrow_t& nothrow_constant) noexcept; (ordinary delete with size)
Parâmetros
size - Contém o tamanho em bytes do bloco de memória solicitado.
nothrow_value - Ele contém o nothrow constante.
ptr - É um ponteiro para um bloco de memória já alocado de tamanho adequado.
voidptr2 - É um ponteiro vazio.
Valor de retorno
Nenhum
Exceções
No-throw guarantee - esta função nunca lança exceções.
Corridas de dados
Ele modifica o armazenamento referenciado pelo valor retornado.
Exemplo
No exemplo abaixo explica sobre o novo operador delete [].
#include <iostream>
struct MyClass {
MyClass() {std::cout <<"MyClass is constructed\n";}
~MyClass() {std::cout <<"MyClass is destroyed\n";}
};
int main () {
MyClass * pt;
pt = new MyClass[3];
delete[] pt;
return 0;
}
Vamos compilar e executar o programa acima, isso produzirá o seguinte resultado -
MyClass is constructed
MyClass is constructed
MyClass is constructed
MyClass is destroyed
MyClass is destroyed
MyClass is destroyed