質問: NULLポインタを参照してはいけないのですか?
回答: いい質問ですね。 先の方も言われてますが、C言語ではNULLポインタの参照は禁じられてません。 参照してもいいのです。 ただし、その後システムの挙動がどうなるかをC言語は保障していないだけです。 システム(普通はOSですね)はその貫徹性を維持するため、プログラムが不正なアドレス(この場合はNULLですね)をブロックする仕組みを備えておくべきなんでしょう。 ただ、参照してはイケないと言われているのは、プログラマーとしての最低限のマナー(バグを減らす)として言われているだけだと思います。 だから、ポインタを引数とする関数を作る場合 void func( int *p ) { if( p == NULL ) retturn; ・・・・ } といった具合に、ポインタがNULLかどうかをチェックするのはマナーであると思いますが。