上級 › delete後のポインタ使用が「たまたま動いてしまう」危険性 › パターン3
delete後のポインタ使用が「たまたま動いてしまう」危険性
deleteした直後の同じポインタを使って読み書きしてしまうバグです。
1 #include <iostream> 2 int main() { 3 int *n = new int(7); 4 delete n; 5 _______________________________ ^ 6 return 0; 7 }
出力: 実行のたびに変わりうる無関係な値(クラッシュはしない)危険性: 未定義動作。たまたま動いているだけ
空欄を埋めてコンパイル・実行を通す
delete後のポインタを一切使わない、または直後にnullptrを入れておくのが安全な習慣です。使ってしまっている行自体を削除するのが最も確実な直し方です。
次の問題