2019年7月18日のブックマーク (1件)

  • ダングリングポインタとは|dangling pointerの危険性と回避

    ダングリングポインタ 無効なメモリ領域を指すポインタはダングリングポインタ(dangling pointer)と呼ばれる。とりわけ、来有効だったメモリ領域が解放処理などによって無効化されたにもかかわらず、そのメモリ領域を参照し続けているポインタのことを、ダングリングポインタと呼ぶ。 例えば、free関数等によって解放されたオブジェクトを参照し続けているポインタ変数などは、無効なメモリアドレスを指していることから、ダングリングポインタの状態にあると言える。このような無効な領域を指すポインタは、誤って利用されると重大なバグを引き起こすことにも繋がる。そのため、そのようなポインタ変数に対しては、空ポインタ(NULL)を代入することで、ダングリングポインタの発生やその影響を回避することなどが求められる。 int *pointer = malloc(8); // メモリ確保 free(pointe

    proxy0721
    proxy0721 2019/07/18