1-16-1. ヌルポインタ

公開日: 16:47 1. 基本編/1-16. ポインタ/1-16-1. ヌルポインタ


割り当てるべき正確なアドレスがないときに、ポインタ変数にNULLを割り当てることは良い習慣です。これは変数宣言時に行われます。NULLを割り当てられたポインタはヌルポインタと呼ばれます。

ヌルポインタは0の値とiostreamなどのいくつかの標準ライブラリで定義されています。次のプログラムを考えてみましょう。
#include <iostream>

using namespace std;

int main ()
{
   int  *ptr = NULL;

   cout << "ptrの値は " << ptr ;
 
   return 0;
}
上のコードをコンパイルし実行すると、次の結果が得られます。
ptrの値は 0

殆どのOSでは、OSに予約されているのでプログラムはアドレス0へのアクセスが許可されていません。しかしながら、メモリアドレス0は特別な意味を持ち、ポインタは意図するアクセス可能なメモリ位置を指していないことを知らせます。しかし慣例として、ポインタがヌル(0)を含む場合、何も指していないと仮定されます。

ヌルポインタか調べるためには次のようなif文を使えます。
if(ptr)     // pがnullでなければ
if(!ptr)    // pがnullなら

未使用のポインタにnull値を与えてnullポインタの使用を避けると、未初期化ポインタの偶発的な誤使用を避けることができます。未初期化変数が不要な値を保持し、それがプログラムのデバッグを困難にすることがよくあります。
  • ?±??G???g???[?d????u?b?N?}?[?N???A

0 件のコメント :

コメントを投稿