- ベストアンサー
不適切なポインタ
あるポインタがあって、そのポインタが「不適切かどうか」で条件分岐させたいのですが、そんなことってできるでしょうか?? ポインタの指す値で評価しようとすると、不適切なポインタの場合はエラーになってしまいますので、もちろんできません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
例外ハンドラを記述して、例外エラーを検出して下さい。 例外ハンドラの記述方法は処理系により異なるので、残念ながら具体例は示せません。
その他の回答 (1)
- MrBan
- ベストアンサー率53% (331/615)
回答No.2
# 本来的には不適切にならないようにNULL初期化などを正しく行うべきであり、 # NULLでないポインタが不適切かどうかを正しく判断することは通常できません。 # 不定なポインタの内部を参照した時点で不定動作。 # よって、それに基づいての分岐処理は不適切といえます。 なお、環境依存(Windows用)ですが、デバッグ機能として例えば以下のような"不完全な"チェック関数は存在することがあります。 IsBadCodePtr, IsBadReadPtr, IsBadStringPtr, IsBadWritePtr ※このAPIは、条件に適合する場合にデバッガを起動しようとします。
質問者
お礼
ありがとうございます。 確かにご指摘のとおりそもそも不適切な処理かもしれません。 全体を再考してみます。
お礼
例外処理ですね。 使ったことがなかったのでちょっと調べてみましたが、これでいけそうです。ありがとうございます。 ただ、上の方のご指摘にあるようにそもそも良くないことが明らかなので、全体を1から再考してみます。