p=(char *)malloc(sizeof(char)*10)中的分配有可能不成功所以要先判断 if(p == NULL)printf("memory is not ......."),分配不成功就返回。
第二呢独立的说p是一个已经声明的字符指针,同样的“hello”也是指针,是可以赋值,但“hello”的存储不需要另外一个字符数组,只用声明一个字符指针就行!而你却分配了十个指向字符的指针的空间,字符和字符串不一样。
这是我的一点看法,你在看看吧!