我有这样的东西:
class HashTable
{
Bucket<E>** index;
...
}
~HashTable( )
{
delete[] index;
}
class Bucket
{
E* elements
...
}
~Bucket( )
{
delete[] elements;
}
在这种情况下如何正确释放内存?
delete[] 索引是否足够,还是我必须循环遍历所有 Bucket-Objects 并分别删除 elemtents-array?
最佳答案
如果您使用 new
分别分配每个桶对象,您应该使用 delete
释放每个对象。
简单的规则是:
您应该分别拥有与 new
或 new[]
一样多的 delete
或 delete[]
.
建议:
您可能会通过使用智能指针并避免此类内存管理问题来帮自己一个忙。
关于c++ - 在 C++ 中为包含对象数组的对象数组释放内存的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10230309/