【发布时间】:2013-08-02 22:27:27
【问题描述】:
以下代码指向只读存储器中可用的char 数组 中的第一个字符。对吗?:
const char * ptr = "String one";
现在当ptr 开始指向另一个内存位置时:
ptr = "String two";
第一个 char 数组会发生什么?执行结束时是否释放了该内存位置?
【问题讨论】:
-
字符串字面量是静态分配。他们不需要被释放。
-
为什么要释放它?指针只是指向不同的字符串文字,正如接受的答案中所解释的,字符串文字具有静态存储持续时间,因此它们没有被释放。
标签: c pointers char string-literals