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

标签 c++

所以我决定今晚来点指针的乐趣:)

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

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

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

所以我一直在想,是不是应该先删除pointer-to-pointer-type指向的所有pointer-to-object-types,然后delete[] pointer-to-pointer-type?

或者有更好的方法吗?

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

最佳答案

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

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

关于c++ - 如何释放指向堆中指向其他对象的指针类型的指针到指针类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7394174/

相关文章:

c++ - mpl::transform on boost::fusion::tuple

c++ - 启动第二个 Linux 程序并从 C/C++ 退出当前程序?

c++ - 错误 127 g++ : Command not found

c# - 返回 C# 后保留 C++ 中的类状态

c++ - Lambda 黑魔法采取不同类型

c++ - 如何清除ostringstream

c++ - C++ 中 "::delete"的用途是什么?

主要gtest之前的c++段错误

c++ - 在 C++ 中使用整数和 double 格式化矩阵

c++ - CMake 项目 automake 库