Учитывая следующий код (и тот факт, что VirtualAlloc() возвращает a void*):
BYTE* pbNext = reinterpret_cast<BYTE*>(
VirtualAlloc(NULL, cbAlloc, MEM_COMMIT, PAGE_READWRITE));
почему reinterpret_cast выбран вместо static_cast?
Раньше я думал, что reinterpret_cast в порядке, например. (например, DWORD_PTR), но отличать от void* до a BYTE* не означает static_cast ОК?
Существуют ли какие-либо (тонкие?) различия в этом конкретном случае, или они являются как действительными действительными указателями?
Предпочитает ли стандарт С++ этот случай, предлагая способ вместо другого?