以下のプログラムは、p には意味のないアドレスが格納されているため、
必ず初期化しなければいけないとある本に書いてありました。しかし、
以下のようでも、一応コンパイルも出来て、実行もできました。ここで
疑問に思ったことがあります。なぜ、必ず初期化しなくてはいけないのか
という事です。僕なりの勝手な推測としては、初期化していないポインタに
は意図されていないアドレスが入っていて、そのアドレスがシステムの
何か重要な領域を指している可能性があるとし、その時、そのポインタの指す
領域を書き換えては危険であるから、初期化をいなければいけないとの
推測です。(勝手な推測してすいません。)
本当の所が知りたいです。みなさん、お願いします。

int *p;
*p=10;

printf("p=%p \n",p);
printf("*p=%d \n",*p);

実行結果
p=ffbefbac
*p=10