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

C++ Dynamic Memory Allocation - char*

我在理解 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";

所以问题很简单:我是否应该在每次不再需要字符指针(或任何其他指针)时使用 delete?还是有一些例外?

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


编辑

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

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

char* text = "something";

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

事实上,该语句不会创建 任何东西(除了指针)- 它设置 text 指向一个字符串,该字符串是在您的程序创建时创建的开始了。