ポインタ変数は宣言直後はでたらめな値が格納されているので、このまま利用するのはバグとなり危険。
これを防ぐために、アドレスを代入したかどうかを区別する必要がある。
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
コメント