小编jar*_*jar的帖子

删除数组时删除和删除[]是否相同?

可能重复:
如何将new []与delete配对可能只会导致内存泄漏?
(POD)释放内存:删除[]等于删除?

使用gcc版本4.1.2 20080704(Red Hat 4.1.2-48).尚未在Visual C++上进行测试.

在删除"简单"类型的数组时,似乎delete并且delete []工作原理相同.

char * a = new char[1024];
delete [] a; // the correct way. no memory leak.

char * a = new char[1024];
delete a; // the incorrect way. also NO memory leak.
Run Code Online (Sandbox Code Playgroud)

但是,当删除"复杂"类型的数组时,delete会导致内存泄漏.

class A
{
public:
    int m1;
    int* m2; // a pointer!
    A()
    {
        m2 = new int[1024];
    }
    ~A()
    {
        delete [] m2; // destructor won't be called when using …
Run Code Online (Sandbox Code Playgroud)

c++ arrays memory-management g++

4
推荐指数
3
解决办法
4708
查看次数

标签 统计

arrays ×1

c++ ×1

g++ ×1

memory-management ×1