C言語: NULLポイント

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

コメント

タイトルとURLをコピーしました