什么是好的,什么是错的?在什么情况下我必须调用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/