0

我有一個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; 

關閉程序並跟蹤內存泄漏後, g這兩個'm_ht =新...',我不知道如何正確刪除它們。

謝謝!

回答

2

您應該將m_ht = nullptr;移動到最後一行。否則,以下deletedelete[]無法獲取要發佈的地址。