读书人

指针赋值字符串有关问题

发布时间: 2012-02-11 09:51:35 作者: rapoo

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

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

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

读书人网 >C语言

热点推荐