Compare os operadores de alocação e desalocação de memória
dinâmica new, new [], delete e delete [].
Passo 1
A palavra-chave new aloca memória dinamicamente para um objeto de um determinado tamanho. Após a execução, ele chama o construtor padrão da classe do objeto e retorna um ponteiro para o local de memória desse objeto.
Por outro lado, new [] aloca dinamicamente um array de objetos, chamando o construtor padrão para cada elemento no array. A instrução retorna um ponteiro para o primeiro elemento da matriz.
Passo 2
A palavra-chave delete desaloca memória alocada dinamicamente de um único objeto. Antes de desalocar a memória, a instrução chama o destruidor correspondente do objeto.
O delete [] é usado para desalocar arrays alocados dinamicamente. A instrução chama destruidores para cada elemento da classe e, em seguida, desaloca toda a memória ocupada pelo array.
Resposta
Ver a explicação.