ポインタ変数は宣言直後はでたらめな値が格納されているので、このまま利用するのはバグとなり危険。
これを防ぐために、アドレスを代入したかどうかを区別する必要がある。
NULL をポインタ変数に代入しておくことで、区別をつけることができる。
- 書き方
int *p = NULL;
- サンプル
1 #include <stdio.h>
2
3 int main(void)
4 {
5 int *p = NULL;
6 if (! p) {
7 printf("p = Null\n");
8 }
9 int i;
10 p = &i;
11 if (p) {
12 printf("p = Not null\n");
13 printf("p = %p\n", p);
14 }
15 return 0;
16 }
- 実行結果
# ./a.out p = Null p = Not null &i = 0x7fff5690b83c

コメント