たとえば、初期化されていないポインタ変数や、間違った初期化や間違ったアドレス計算によって、不正なメモリ領域(配列の範囲外など)を指してしまったポインタが該当します。
ワイルドポインタを間接参照すると、メモリ上の予想外の場所をアクセスすることになるため、メモリ破壊などの問題を起こす恐れがあり危険です。
初期化されていない変数の使用など、コンパイラや静的解析ツールによって指摘される可能性はありますが、C言語や C++ のように、言語仕様としてはコンパイルエラーとみなさないプログラミング言語では、基本的にプログラマーが注意を払わなければなりません。
よく似た用語に、ダングリングポインタがあります。これは、メモリ領域の無効な場所を指し示しているポインタのことで、たとえば、ダイナミックメモリアロケーションによって確保されたメモリ領域が解放されたあとも、引き続きその場所を指し示したままになっているポインタが該当します。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |