0

関数がいつ実行されるかによってクラスメンバーの場所が変わるという問題があります。

コンストラクターの実行中、メンバーの場所は 0x008bc044 です。その後、メンバー関数が呼び出され、同じメンバーの場所はまだ 0x008bc044 です。その後もメンバー関数が再度実行されますが、同じメンバーの場所は 0x008bc048 に変更されます。クラスの他のすべてのメンバーは、その場所を変更しません。クラスを別の型にキャストしていません。

これは、関数がランダム データを読み取り、誤った出力を引き起こすため、問題を引き起こしています。

Visual Studio 2012、11.0.60315.01 Update 2 を使用しています。

Visual Studio デバッガーのアルバム

4

1 に答える 1

1

32 ビット システムを実行していて、派生クラスがあり、基本クラスのポインターと派生クラスのポインターを表示します。さらに、再解釈または c スタイルのキャストがあります。

于 2013-08-26T07:00:42.247 に答える