29
ポインターの有効性のテスト(C / C ++)
与えられたポインタが「有効」かどうかを(プログラム的にはもちろん)判断する方法はありますか?NULLのチェックは簡単ですが、0x00001234のようなものはどうですか?この種類のポインタを逆参照しようとすると、例外/クラッシュが発生します。 クロスプラットフォームの方法が推奨されますが、プラットフォーム固有(WindowsおよびLinuxの場合)でも問題ありません。 明確化のための更新: 問題は、古くなった、解放された、初期化されていないポインターには関係ありません。代わりに、呼び出し元からポインターを取得するAPI(文字列へのポインター、ファイルハンドルなど)を実装しています。呼び出し元は、ポインタとして(意図的または誤って)無効な値を送信できます。クラッシュを防ぐにはどうすればよいですか?
90
c++
c
validation
pointers
null