ポインタは非常に有益である半面、危険性も秘めています。もっとも危険な側面はです。例えば、
- ポインタの値を用いた加減算が可能なこと
- ポインタの値に任意の値を代入することが可能なこと
のように,メモリ空間上のデータを直接操作することが可能となる反面、ptr = data; /* 配列data[ ]の先頭アドレスを代入 */ while(*ptr != '\0'){ /* 文字列の最後の'\0'を見つけるまで以下を繰り返す */ printf("%c", *ptr); /* 1文字出力 */ ptr++; /* ptr=ptr+1; 次の文字を指すアドレスとなる */ }などの危険性があります。このようなポインタの功罪を理解し、危険性の少ないプログラムを書くように心がけましょう。
- 意図していない別の有効なデータを消去する
- 存在しない(そのプログラムで扱っている範囲外の)データを指定できてしまう