Мой поиск foo, похоже, сегодня отсутствует.
Я хотел бы знать, законно в соответствии со стандартным C ++ проверять "любой" расположение в памяти через (беззнаковый (?)) символ *. Под любым местоположением я подразумеваю любой действительный адрес объекта или массива (или внутри массива) внутри программы.
В качестве примера:
void passAnyObjectOrArrayOrSomethingElseValid(void* pObj) {
unsigned char* pMemory = static_cast<unsigned char*>(pObj)
MyTypeIdentifyier x = tryToFigureOutWhatThisIs(pMemory);
}
Заявление об ограничении ответственности : Этот вопрос чисто академический. Я не собираюсь вводить это в производственный код! Под законным я имею в виду, действительно ли он законен в соответствии со стандартом, то есть если он будет работать на 100% всех реализаций. (Не только на x86 или другом обычном оборудовании.)
Подвопрос: Подходит ли static_cast
для перехода от адреса void * к указателю char *?