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
设置为指向程序启动时创建的字符串。
相关文章:
- 初始化或分配空字符串文字到指向 C 中的 char 的指针或指向 C++ 中 const char 的指针的原因是什么
- 使用动态分配将 char* 复制到另一个字符**
- 当我尝试通过构造函数分配 char 数组时出现错误
- 分配值时,C++ char* 指针上的前递增与后递增
- 为什么在 c++ 中分配 char 数组元素时,分配的字符会被销毁?
- char p[0]表示自动分配的缓冲区还是安全指针
- 为什么为char指针分配内存不会截断char序列
- 在C++中,从构造函数中将字符串文本分配给成员const char*变量时会发生什么
- 将字符串文本分配给字符*:const_cast<字符 *> 与使用 char 数组
- 如何为const char double指针(使用新的)动态分配内存
- 试图创建动态分配的char数组时的分割故障
- 如何为 char** 类型变量提供适当的值,以便将其分配给字符串变量
- C++ 在类外部分配 char 数组的索引
- 不能将 "const char*" 类型的值分配给类型 "int" 的实体
- char *的C 动态分配
- 将const char * const参数成员分配给新值
- 我如何将char*分配给字符阵列
- C++发行版将char*分配到字符串中
- 在c++中为char*分配内存时遇到麻烦
- 将Char*分配给字符串变量后删除它