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

C++ Dynamic Memory Allocation - char*

本文关键字:char 分配 动态 内存 c++      更新时间:2023-10-16

我在理解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设置为指向程序启动时创建的字符串。