如何释放指向堆中指向堆中指向堆中其他对象的指针类型的指针到指针类型?

时间:2011-09-12 21:17:15

标签: c++

所以今晚我决定让一些指针变得有趣:)

CursorHBList::CursorHBList(UINT iNumHB)
    :m_ppCursorHB(nullptr)
    ,m_iNumHB(iNumHB)
{
    if (iNumHB != 0) {
        m_ppCursorHB = new CursorHitBox* [iNumHB];
    }   
}

所以你可以看到,我现在已经动态分配了指针类型。

这些指针将指向堆中的另一个(单个)对象。 (稍后,不在代码示例中)

所以我一直想知道是否应该首先删除指向指针类型所指向的所有指针对象类型,然后删除[]指向指针类型的指针? / p>

或者有更好的方法吗?

编辑:不使用智能指针......

1 个答案:

答案 0 :(得分:2)

正如所建议的,更好的方法是使用智能指针容器。

但是,由于你不能使用智能指针(我不知道为什么因为所有智能指针都是一个非常简单的类,你可以编写自己的指针),你需要遍历数组并{ {1}}每个指针,然后按顺序delete数组。这就是你管理自己的记忆时必须要做的事情。