ポインターのアクセシビリティの検証に関する質問を投稿しました。結論は、IsBadReadPtr を使用してポインターをチェックするか、SEH を使用して例外をキャッチすることでした (どちらも使用せずにアプリケーションをデバッグすることが望ましいですが、それはここでは問題ではありません)。
IsBadReadPtr は、他の理由の中でも特に、ポインターを読み取ろうとし、例外をキャッチするため、悪いと言われています。スタック ガード ページの例外をキャッチする可能性があり、スタックを拡大する必要があるメモリ マネージャーに到達できなくなります。
SEH を使用して EXCEPTION_ACCESS_VIOLATION 例外のみをキャッチすると、同じ問題が発生しますか?
別のこと: SEH を使用することの意味は何ですか? この記事では、「コンパイラは SEH で保護されたコードでフロー解析を実行できない」ことを示唆しています。__try ブロック内で関数を呼び出すとどうなりますか。コンパイラは呼び出された関数をまったく最適化しませんか?