Por que o novo operador tem permissão para retornar * anulado a todo tipo de ponteiro?
No C ++, não é permitido atribuir um ponteiro nulo * a qualquer ponteiro integral sem uma conversão explícita. Isso requer o uso de um static_cast.
Mas o que há com isso:
int* iptr = new int;
Sei que o novo operador está definido da seguinte forma:
void* operator new(size_t);
Como o C ++ lida com isso? Eu sei que esta é uma pergunta básica, mas importante. Eu também sei que o código de baixo nível deve usar void. Mas como essa tarefa pode ser legal? iptr é um ponteiro para int e new retorna um ponteiro para void, que deve acionar uma mensagem como "erro: conversão inválida de 'void *' para 'int *' [-permissive]".