我有一个HashTable模板类,在删除动态数组时遇到了困难。(SLList =单链表)
我的数据成员是:
SLList<Type>* m_ht;
unsigned int(*m_hFunction) (const Type &v);
unsigned int m_numOfBuckets;在构造函数/赋值操作符中,我有分配动态内存的“新”:
m_ht = new SLList<Type>[numOfBuckets];我的破坏者:
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 .‘,我不知道如何正确地删除它们。
谢谢!
发布于 2016-02-12 02:19:41
您应该将m_ht = nullptr;移到最后一行。否则,下面的delete和delete[]无法获得要释放的地址。
https://stackoverflow.com/questions/35353671
复制相似问题