タグ

ブックマーク / www.little-cuckoo.jp (1)

  • delete 後のポインタ変数は null で埋めとこう - 閑古鳥

    deleteのお約束 NULLポインタのdeleteを安全に行わせる。 Effective C++ にも書いてあったのか……。これは社のめがね先輩(誰ていうか失礼)の席にあったはずなので、いつぞやの日記*1でもこれを指しておけばよかったかな。 引用先の記事を見ていて、そういえば昔 if(ptr != 0) delete ptr; なんてやって、それだけで満足しているかのようなコードがあったことを思い出した。このコードが複数回呼ばれた時の動作は未定義になってしまうので (delete しても ptr 変数の指し示すアドレスは変わらない) 、当に多重 delete を防ぎたいのなら if 文じゃなくって delete 後に ptr = 0; として使用済みのポインタ変数の値を 0 にしてやる必要がある。まあ、そのコードが落ちることは無かった (複数回呼ばれたりはしないものだった) のですが

    delete 後のポインタ変数は null で埋めとこう - 閑古鳥
  • 1