Я смотрел подпись нового оператора. Что есть:
void* operator new (std::size_t size) throw (std::bad_alloc);
Но когда мы используем этот оператор, мы никогда не используем приведение. то есть
int *arr = new int;
Итак, как С++ преобразует указатель типа void*
в int*
в этом случае. Потому что даже malloc
возвращает void*
, и нам нужно явно использовать листинг.