单项选择题

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

A.char*p,ch;

p=&ch;

scanf("%c",&p);
B.char*p;

p=(char*)malloc(1);

scanf("%C",p);
C.char*p;

*p=getchar();
D.char*p,ch;

p=&ch;

*p=getchar();