私の経験では、人々が解放されたメモリ割り当てにアクセスするとき、ほとんどの場合、どこかに別のポインタがあるため、これはほとんど役に立ちません。そして、それは「無駄な混乱を避ける」という別の個人的なコーディング標準と競合するため、ほとんど役に立たず、コードが少し読みにくくなると思うので、私はそれをしません。
ただし、ポインターが再び使用されることが想定されていない場合は、変数を null に設定しませんが、より高いレベルの設計により、とにかく null に設定する理由が得られることがよくあります。たとえば、ポインターがクラスのメンバーであり、それが指すものを削除した場合、クラスの「契約」は、そのメンバーがいつでも有効なものを指すため、null に設定する必要があるということです。そのため。小さな違いですが、重要な違いだと思います。
C++ では、メモリを割り当てるときに、誰がこのデータを所有しているかを常に考えることが重要です (ただし、スマート ポインターを使用している場合を除きますが、その場合でも何らかの考慮が必要です)。そして、このプロセスは、通常、ポインターが何らかのクラスのメンバーになる傾向があり、通常、クラスを常に有効な状態にする必要があります。これを行う最も簡単な方法は、メンバー変数を NULL に設定して、それがポイントしていることを示すことです。今は何もありません。
一般的なパターンは、コンストラクターですべてのメンバー ポインターを NULL に設定し、クラスが所有していると設計で示されているデータへのポインターに対して、デストラクターが delete を呼び出すようにすることです。明らかに、この場合、何かを削除するときにポインタを NULL に設定して、以前にデータを所有していないことを示す必要があります。
要約すると、はい、何かを削除した後にポインターを NULL に設定することがよくありますが、それは、コーディング標準のルールにやみくもに従っているためではなく、より大きな設計とデータの所有者に関する考えの一部です。あなたの例ではそうしません。そうすることには利点がないと思うので、私の経験では、この種のことと同じようにバグや悪いコードの原因となる「混乱」が追加されます。