Правильный способ приведения типов указателейC++

Программы на C++. Форум разработчиков
Anonymous
Правильный способ приведения типов указателей

Сообщение Anonymous »

Учитывая следующий код (и тот факт, что VirtualAlloc() возвращает void*):

Код: Выделить всё

BYTE* pbNext = reinterpret_cast(
VirtualAlloc(NULL, cbAlloc, MEM_COMMIT, PAGE_READWRITE));
почему выбран reinterpret_cast вместо static_cast?

Раньше я думал что reinterpret_cast подходит, например, для приведение указателей к целочисленным типам и обратно (например, DWORD_PTR), но приведение от void* к BYTE*, разве static_cast не подходит?

Есть ли какие-либо (незначительные?) различия в этом конкретном случае, или они просто оба являются допустимыми приведениями указателей?

Есть ли стандарт C++ отдает предпочтение этому случаю, предлагая один путь вместо другого?

Подробнее здесь: https://stackoverflow.com/questions/155 ... nter-types

Вернуться в «C++»