В C ++ не разрешается назначать указатель void * любому целочисленному указателю без явного приведения. Это требует использования static_cast.
Но что с этим:
int* iptr = new int;
Я знаю, что новый оператор определяется следующим образом:
void* operator new(size_t);
Как C ++ справляется с этим? Я знаю, что это базовый вопрос, но важный. Я также знаю, что код низкого уровня должен использовать void. Но как это задание может быть законным? iptr - это указатель на int, а new возвращает указатель на void, что должно вызвать сообщение типа «ошибка: недопустимое преобразование из« void * »в« int * »[-fpermissive]».