double *p = 5; //error 因为double *p只是定义一个指针变量,但是p指向的地方是不可预知的,此时想p所指向的内存空间直接写数据,结果不可预知,可能报段错误(崩溃)。 而malloc的作用是向操作系统申请一块可用的内存空间,再令p指向这片内存空间,就可以向其中写入数据了;