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]; //对于数组 –