Dlaczego wskaźniki domyślnie nie są inicjowane NULL?

Czy ktoś może wyjaśnić, dlaczego wskaźniki nie są zainicjowaneNULL?
Przykład:

  void test(){
     char *buf;
     if (!buf)
        // whatever
  }

Program nie wszedłby do środka, ponieważbuf nie jest null.

Chciałbym wiedzieć dlaczego, w jakim przypadku potrzebujemy zmiennej z trash'em, a zwłaszcza wskaźników adresujących śmieci do pamięci?

questionAnswers(15)

yourAnswerToTheQuestion