gpt4 book ai didi

C++ 动态内存分配 - char*

转载 作者:太空宇宙 更新时间:2023-11-04 07:07:38 26 4
gpt4 key购买 nike

我在理解 C++ 中动态内存分配的一部分时遇到了问题。

我知道它的标准做法是做这样的事情来避免内存泄漏:

double* pvalue  = NULL; // Pointer initialized with null
pvalue = new double; // Request memory for the variable
*pvalue = 29494.99;
delete pvalue;

但是,我见过很多这样的源代码,delete 从未在那里用于释放内存:

char* text = "something";

所以问题很简单:每次我不再需要 char 指针(或任何其他指针)时,我都应该使用 delete 吗?还是有一些异常(exception)?

我读了很多书,但我只是越来越困惑,所以我希望有人能帮助我。


编辑:

谢谢你的解释。我终于明白了,我可以放心地更改我的源代码了!

最佳答案

您应该删除您使用new 创建的所有内容,除此之外别无其他。

char* text = "something";

这不会用 new 创建一些东西,所以你不应该 delete 它。

事实上,该语句不会创建任何东西(除了指针)- 它设置text 以指向程序启动时创建的字符串。

关于C++ 动态内存分配 - char*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31283105/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com