「ゲームプログラマになる前に覚えておきたい技術」を読んでいると、まだ値を入れていないポインタや解放したあとのポインタには0を入れておく習慣を身につけるべきだとある。
この考え方にはまったく異論はないし、自分もそうやっている。ただ0ではなくNULLを使っている。
どうしてNULLじゃなくて0を使っているんだろう。まあ、結局はNULLも0として定義されているから同じといえば同じだけど。
NULLと書いたほうがポインタだと一目で分かるのでいいと思うのだが。
Visual Studioのstdio.hにあったNULLの定義部分は次の通り。
/* Define NULL pointer value */ #ifndef NULL #ifdef __cplusplus #define NULL 0 #else #define NULL ((void *)0) #endif #endif