>>790
sizeof のなかで *p をみているわけではないので、未定義ではなく、ちゃんと値が返ります。

#Administrator@KORP ~
$ cat noninit.01.c
#include <stdio.h>
typedef int foo;
int main() {
  foo *p;
  printf("sizeof(*p)=%d\n", sizeof(*p));
  return 0;
}
/* end */

#Administrator@KORP ~
$ bcc32 noninit.01.c
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
noninit.01.c:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland

#Administrator@KORP ~
$ ./a.exe
sizeof(*p)=4

#Administrator@KORP ~