首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-03-11 
字符串指针这样给赋值为什么不妥当? char*p(char*)malloc(32)pabced //...free(p)//p这样赋值不妥

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

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

热点排行