Dr.*_*ana -1 c++ memory-leaks new-operator dynamic-memory-allocation delete-operator
在C++中,如果我有一个动态分配的基本类型数组,是否有必要使用delete []来防止内存泄漏?例如,
char * x = new char[100];
delete x; // is it required to call delete [] x?
struct A {
...
};
A *p = new A[30];
delete [] p; // delete p would cause memory leakage
Run Code Online (Sandbox Code Playgroud)
请评论.
是的,因为语言需要它.
当数组是标量类型时,很可能如果你意外使用delete而不是delete[]那么你的程序仍然有效.但它仍然是未定义的行为---标准并不保证它的工作原理,下一版本的编译器可能会破坏您的程序.
| 归档时间: |
|
| 查看次数: |
840 次 |
| 最近记录: |