c - 当指针指向一个新字符串时,分配给该指针寻址的字符串的内存会发生什么?

标签 c string pointers

    char *p = "hello";
    p = "hello_2";

此处字符串“hello”存储在内存中,其地址存在于指针“p”中,但是当该指针开始指向字符串“hello_2”时,存储字符串“hello”的内存会发生什么变化?它会被释放还是该字符串保留在那里但我们无法访问它?

最佳答案

您拥有的是一个字符串常量,它存储在只读内存中。 因此,不需要使用 free()

显式释放此内存

在变量 p 的生命周期有效之前,您可以访问存储的字符串。

关于c - 当指针指向一个新字符串时,分配给该指针寻址的字符串的内存会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50810408/

相关文章:

c - 仅使用循环在c中计算给定范围的素数

vb.net - VB.Net 中的字符串与 [String]

string - haskell : concat two IO Strings

c++ - WINAPI:如何将编辑的文本转换为 std::string?

c 二叉树插入函数指针

swift - 无法转换为带符号的 16 位数组

c++ - 通过范围循环从指针容器中获取取消引用元素的引用

c - C 中对 gotoxy 的 undefined reference

c - DES 加密和密码模式

c - 双栈套接字上的 getnameinfo() 函数返回不正确的 IP 地址?