一个指针有关问题

一个指针问题float*Mprintf( \nINPUTANUMBER: )scanf( %d ,M)//运行到这句的时候报错(写内存地此错

一个指针问题
float   *M;
printf( "\nINPUT   A   NUMBER: ");
scanf( "%d ",M);     //运行到这句的时候报错(写内存地此错误,(M的值)0Xcccccccc)
请大家解释一下原因



[解决办法]
当然,你没有给M分配内存嘛,两种解决:
float *M = new float;
printf( "\nINPUT A NUMBER: ");
scanf( "%d ",M);

float M;
printf( "\nINPUT A NUMBER: ");
scanf( "%d ",&M);