0

私は次のようなreinterpret_castを使用しています:

void RunThread (void *myself)
{
   (reinterpret_cast<MyClass*>(myself))->Method();
}

メソッド内では、ほとんどのメンバー変数(すべてのハンドル)がnullです。同じアドレスが保証されないことがわかっているので、これはreinterpret_castが原因でしょうか?static_castのように。この場合はstatic_caseを使用する必要があることはわかっていますが、この問題に興味を持ったのです。

4

1 に答える 1

3

いいえreinterpret_cast。ソースポインタに対しては何の操作も実行せず、その値を別のポインタ(または整数)型として扱うだけです。myselfが指すメモリにオブジェクトが含まれていないMyClass(またはバイナリ互換の)場合にのみ、間違った結果が得られる可能性があります。

于 2012-08-20T10:20:54.107 に答える