读书人

字符串指针这样给赋值为什么不妥当?解

发布时间: 2012-03-11 18:15:38 作者: rapoo

字符串指针这样给赋值为什么不妥当?

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指向的那块内存丢失,内存泄漏

读书人网 >C++

热点推荐