删除和指向数据的节点?

时间:2012-05-29 00:25:04

标签: c++ pointers memory-management nodes

delete指向结构foo的指针:

struct foo
{
    bar * baz;
};

指向struct baz

struct baz
{
    int arr;
};

同样delete /释放baz指向的内存?

2 个答案:

答案 0 :(得分:4)

没有。删除不会以这种方式“级联”。

但是,如果foo析构函数,则可以在该析构函数中delete baz

答案 1 :(得分:3)

没有。在删除foo实例之前,您需要手动删除baz。大多数典型的开发人员都会使用foo delete baz的析构函数。

struct foo
{
    bar * baz;
    ~foo()
    {
        delete baz;
    }
};