あと確認ですが

int main(void)
{
char *MojiC;
printf("MojiC = "); scanf("%s", MojiC);
return(0);
}
というコードだと、MojiCのアドレスが不定で、
MojiCが指す先にアクセスできる保証がないから、
scanf("%s", MojiC); はアクセスできないところにアクセスすることにつながるので問題である(エラーが出る)。

int main(void)
{
char MojiC;
printf("MojiC = "); scanf("%s", &MojiC);
return(0);
}
というコードなら、char MojiC;のところで
MojiCのアドレスはアクセスできるアドレスになることが決まるので
scanf("%s", &MojiC); は問題ない。

ということでしょうか?

まだまだポインタの基本がわかっていないのでもうチョット勉強します。