はじめての 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 などを マクロとして 定義している ヘッダファイル。