境界検査 | Programming Place Plus 用語集

トップページ用語集

名称

解説

プログラミングにおいて、変数などのを使用する前に、その値が想定された範囲内の値であるかどうかを確認することです。

たとえば、バッファオーバーフローの対策として、配列添字が、その配列の添字として有効な範囲内に収まっているかどうかを確認することが挙げられます。また、あるの変数に値を代入する前に、その型で表現可能であることを確認することも境界検査の一種です。型として表現可能であるかどうかよりも厳しく、想定の範囲内の値であるかどうかを確認することも含まれます(たとえば、0~100 でなければならない事情がある場合に、この範囲内の値であることをチェックするなど)。

プログラミング言語コンパイラによっては、バッファオーバーフローのようなよくあるバグへの対策として、自動的に境界検査を行う仕様になっているものがあります。このような場合、例外を送出するなどの方法で問題を知らせます。境界検査自体に処理時間がかかるため、実行速度を重視するC言語や C++ の言語仕様では行わないことになっており、プログラマーが境界検査のコードを書かなければなりません。

C言語の C11規格の標準ライブラリ関数には、strcpy_s関数(C言語編)のように、従来の関数に境界検査を追加したものがいくつか追加されています。C++ の場合も、std::vector の atメンバ関数など(新C++編)、境界検査を行うように作られているものもあります。


参考リンク

更新履歴


用語集のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る