【发布时间】:2013-11-18 02:47:38
【问题描述】:
我创建了一个 clear () 函数,当被调用时,它会清除整个哈希表并将大小重置为 0。该函数导致我的程序内存泄漏,但我没有看到可能的泄漏.. 这是我的 clear() 函数:
void HashMap::clear()
{
unsigned int capacity = HashMap::bucketCount();
for (unsigned int i = 0; i < capacity; i++)
{
Node* temp;
Node* StoreThenDel = new Node;
if (HashTable[i] != nullptr)
{
temp = HashTable[i];
HashTable[i] = nullptr;
while(temp->next != nullptr)
{
StoreThenDel = temp;
if(StoreThenDel->next != nullptr)
temp = StoreThenDel->next;
delete StoreThenDel;
}
}
}
sz=0; // reset size
}
【问题讨论】:
-
取出新节点
-
仍然出现 1 个内存泄漏错误。
-
奇怪的是你的代码看起来像this guy's。
标签: c++ hash memory-leaks hashtable