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

指针赋值字符串有关问题

2012-02-11 
指针赋值字符串问题请问如果char*strabc 如果重新赋值如:strdef 是不是会造成原来存储 abc 的内

指针赋值字符串问题
请问如果char*   str   =   "abc ";如果重新赋值如:str   =   "def ";是不是会造成原来存储 "abc "的内存不能用并且内存泄露?能不能用free(str)释放原来 "abc "那块内存,然后赋值 "def "?
还是只能先声明一个char数组,然后修改字符串?

[解决办法]
char* str = "abc ";

"abc "是常量,链接时地址已经固定,也就是运行程序时一直存在于程序的数据区里
str只是一个指针指向他的首地址,所以不存在内存泄漏,同理“def”也属于常量

热点排行