tec memo

メモです。

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