はじめての C
「ポインタ 2」
次が、null ポインタです。
どこも 指さない ポインタを 特別に 必要とするとき、指定する 変数 - valuable - が null ポインタです。
この値は、ポインタ変数を 安全に 作動させたい場合や、malloc のような 関数で、エラー時に 返される ポインタに 使われます。
null ポインタは、必要とされる どんな値 - any integral value - でも、それを 0 (ゼロ) として 評価します。
使い方には 2つ あって、必要なときは null を 0 に 決めてしまうか、または マクロとして それぞれの 標準ヘッダで NULL と 定義して 呼び出すかです。
#include
/* For NULL */
int *pl = 0;
char *pc = NULL;null ポインタでは、間接参照することは できません。 というのは、null が メモリに アクセスすることの 無効な箇所だからです。
単に、null を 指定し、それで テストが できるだけです。
if (pc != NULL)
/* Do something */
if (pc != 0)
/* Do something */
(注) stddef.h は、NULL や size_t, offsetof などを マクロとして 定義している ヘッダファイル。