单项选择题

下列程序段中,不能正确赋值的是( )。

A.char*p,ch;
p=&ch;
scanf ("%c",&p);
B.char*p;
p=(char*)malloc(1);
scabf("%c",p);
C.char*p;
*p=getchar();
D.char*p,ch;
p=&ch;
*p=getchar();