字符串指针这样给赋值为什么不妥当?
char *p = (char *)malloc(32);
p = "abced ";
// ...
free(p);
// p这样赋值不妥当,应改为如下,请问为什么?
strcpy(p, "abced ");
[解决办法]
strcpy(p, "abced ")
________________
p--------> |__|__|__|__|__|
^
|copy过去 覆盖原有内容.
________|_____
|abced\0 |
--------------
p= "abced "
____________
p <------|abced\0 | 只把字符指针传给p,而p指的原来区域的内容未改变.引起的可能后果就
---------------
是原来p指向的那块内存丢失,内存泄漏