a) X1 と X2 以下は同等ですか? そうでない場合、明示的な再解釈/定数キャストをどのように行う必要がありますか?
void some_legacy_function(const void* arg) {
char** X1 = (char**) arg;
char** X2 = reinterpret_cast<char**>(const_cast<void*>(arg) );
/* not surprisingly, indexing into X1 randomly crashes in release build */
}
b) このキャストは私には非常に奇妙に思えますが、状況によっては実際に 100% 合法なのですか?