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