c++ - C++ 中的 C 字符串删除

标签 c++ c string

什么是好的,什么是错的?在什么情况下我必须调用delete以防止内存泄漏? 另外,C 和 C++ 中的行为完全相同吗?有什么区别吗?

const char* a = "blahblah";
...
delete a;

char b* = new char('a');
...
delete b;

char c[100] = "blahblah";
...
delete c;

char d* = new char[40];
...
delete d;

char e* = new char[40];
...
delete[] e;

最佳答案

In which case do I have to call delete in order to prevent memory leak

删除您从new获得的内容以及删除[]您从new []获得的内容。其他所有删除都是错误的。

关于c++ - C++ 中的 C 字符串删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15011015/

相关文章:

c++ - 需要帮助纠正 FFmpeg DLL 的访问冲突

C++:未计算上下文中的 lambda 表达式

C++(Allegro Library)位图二维数组问题

c - 在 C 的 OpenGL 中加载 .obj

c - 'function' 之前的预期特定限定符列表和 '=' 之前的预期 ',' 、 ';' 、 'asm' 、 '__attribute__' 或 'function'

c# - PHP/Rails/Django/ASP 网站应该是用 C++ 写的吧?

c - 二叉树节点的 C 声明中的结构

string - 如何在 Java 中执行与编码无关的字符串比较?

Java:使用字符串 charAt 方法的 for 循环崩溃

javascript - 如何检查对象中是否存在相同的字符串?