gpt4 book ai didi

c++ - 在 C++ 中为包含对象数组的对象数组释放内存的正确方法

转载 作者:行者123 更新时间:2023-11-30 04:28:20 25 4
gpt4 key购买 nike

我有这样的东西:

class HashTable
{
Bucket<E>** index;
...
}

~HashTable( )
{
delete[] index;
}

class Bucket
{
E* elements
...
}

~Bucket( )
{
delete[] elements;
}

在这种情况下如何正确释放内存?

delete[] 索引是否足够,还是我必须循环遍历所有 Bucket-Objects 并分别删除 elemtents-array?

最佳答案

如果您使用 new 分别分配每个桶对象,您应该使用 delete 释放每个对象。
简单的规则是:
您应该分别拥有与 newnew[] 一样多的 deletedelete[] .

建议:
您可能会通过使用智能指针并避免此类内存管理问题来帮自己一个忙。

关于c++ - 在 C++ 中为包含对象数组的对象数组释放内存的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10230309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com