私の検索fooは今日欠けているようです。
std C ++に従って、(unsigned(?))char*を介して「任意の」メモリ位置を検査することが合法かどうかを知りたいです。任意の場所とは、プログラム内のオブジェクトまたは配列(または配列内)の有効なアドレスを意味します。
例として:
void passAnyObjectOrArrayOrSomethingElseValid(void* pObj) {
unsigned char* pMemory = static_cast<unsigned char*>(pObj)
MyTypeIdentifyier x = tryToFigureOutWhatThisIs(pMemory);
}
免責事項:この質問は純粋に学術的なものです。これを本番コードに入れるつもりはありません!合法とは、標準に従って本当に合法であるかどうか、つまり、すべての実装の100%で機能するかどうかを意味します。(x86や一部の一般的なハードウェアだけではありません。)
サブ質問:static_cast
void*アドレスからchar*ポインターに到達するための適切なツールはありますか?