所以我决定今晚来点指针的乐趣:)
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/