我有一個類HashMap,並且一切似乎都正常工作,但是我有一個memoryleaks問題。刪除C++類(valgrind檢查)
下面是我的HashMap類私有成員變量/函數
struct Node
{
std::string key;
std::string value;
Node* next;
};
HashFunction hashfunction;
Node** bucketList;
int* numberOfPairs;
int logins;
int lengthOfMap;
,這裏是我的默認構造函數:
HashMap::HashMap()
:hashfunction(hash), bucketList(bucketList = new Node*[INITIAL_BUCKET_COUNT]), numberOfPairs(numberOfPairs = new int[INITIAL_BUCKET_COUNT]),
logins(0),lengthOfMap(INITIAL_BUCKET_COUNT)
{
for(int i = 0; i < INITIAL_BUCKET_COUNT; i ++)
{
bucketList[i] = nullptr;
}
zeroFillArray(numberOfPairs, INITIAL_BUCKET_COUNT);
}
我遺願清單指針,指向節點的數組,每個節點指向鏈表的開始。
截至目前,這是我的析構函數:
HashMap::~HashMap()
{
delete numberOfPairs;
delete bucketList;
}
如何刪除每一個節點(我將在上午解決這個問題,但我想問問如何)列表中之前,我刪除列表,還是我完全錯過了別的東西?
你爲什麼不讀了Valgrind的產生診斷和這出自己呢? –
是的,你刪除每個節點。指針永遠不會刪除自己。 – john