union
{
char s[100];
char *t;
} u;
char **p;
p = &u.t;
printf("%c\n", **p);
とやってるのと同じで
*pつまりtが不定なのに逆参照しちまってるじゃねえか