0
我的析構函數中存在分段錯誤,但我不太清楚爲什麼。代碼用於存儲在節點數組中的鍵/值對映射,並鏈接以避免衝突。析構函數中的分段超出範圍的故障
template<class V>
map<string, V>::~map()
{
for(unsigned int i = 0; i < SIZE; i++){
if(hashArray[i] != NULL){
Node* tmpNode = hashArray[i];
Node* currentNode = hashArray[i];
while(currentNode->next != NULL){
currentNode = currentNode->next;
delete tmpNode;
tmpNode = currentNode;
}
delete tmpNode;
}
}
delete [] hashArray;
}
調試器指向這條線但我確信我不會超出範圍。
while(currentNode->next != NULL){
如果需要,可以提供任何其他代碼。預先感謝您的幫助。 :)
停止刪除你不分配新的東西。 – chris
它在構造函數中都是用new來分配的嗎? –
hashArray = new Node * [SIZE]; //對於數組 –