質問: 100; cout << *p << endl; }
回答: > > このように delete後のポインタpをnullptrとした。として、 > > その後「p=new int;」やあるいは「p=&a;」等での再使用は問題なく行えるのでしょうか。 > > それとも一度、破棄されたポインタはどんな形にしたとしても使うと予期せぬ問題を起こしう > > るのでしょうか。 > > > 全く問題無く利用できます。 破棄されるのはポインタ変数そのものではなく、ポインタが指すオブジェクトだからです。 > > delete後のポインタには、「0」か「NULL」か「nullptr」を入れることが望ましい。 > > それらの値を持つポインタに対してdeleteは、「何もしない」という定義があるので、 > > 予期せぬ動作を起こすことはない。 > > また0、NULLのようにマクロに定義されているものではなくnullptrを使うのが厳密な > > 動作のために良い。 > > > メリットのある習慣だと思います。ただし... 根本的にはnew/deleteに依る動的確保及び解放自体を避けるべきだと思います。 STLやスマートポインタを積極的に活用すれば、生ポインタをいじる機会は多く無い筈です。