¿Por qué el nuevo operador puede devolver * nulo a cada tipo de puntero?
En C ++ no está permitido asignar un puntero nulo * a ningún puntero integral sin una conversión explícita. Esto requiere el uso de un static_cast.
Pero qué pasa con esto:
int* iptr = new int;
Sé que el nuevo operador se define de la siguiente manera:
void* operator new(size_t);
¿Cómo maneja esto C ++? Sé que esta es una pregunta básica, pero importante. También sé que el código de bajo nivel debe usar void. Pero, ¿cómo puede ser legal esta asignación? iptr es un puntero a int y new devuelve un puntero a void, lo que debería activar un mensaje como "error: conversión inválida de‘ void * ’a‘ int * ’[-fpermissive]".