首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除动态存储器

删除动态存储器
EN

Stack Overflow用户
提问于 2016-02-12 02:12:08
回答 1查看 65关注 0票数 0

我有一个HashTable模板类,在删除动态数组时遇到了困难。(SLList =单链表)

我的数据成员是:

代码语言:javascript
复制
SLList<Type>* m_ht;
unsigned int(*m_hFunction) (const Type &v);
unsigned int m_numOfBuckets;

在构造函数/赋值操作符中,我有分配动态内存的“新”:

代码语言:javascript
复制
m_ht = new SLList<Type>[numOfBuckets];

我的破坏者:

代码语言:javascript
复制
m_ht = nullptr;
for (size_t i = 0; i < m_numOfBuckets; ++i) // idk if this for loop
    delete m_ht[i];                         // is correct
delete[] m_ht;

在关闭程序并跟踪内存泄漏之后,它们将指向这两个'm_ht = new .‘,我不知道如何正确地删除它们。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2016-02-12 02:19:41

您应该将m_ht = nullptr;移到最后一行。否则,下面的deletedelete[]无法获得要释放的地址。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35353671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档