У меня ошибка сегментации в моем деструкторе, но я не совсем уверен, почему. Код предназначен для карты пар ключ/значение, которые хранятся в массиве узлов и скованы для предотвращения столкновений.Сегментация ошибки вне диапазона в деструкторе
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
Все выделено новым, хотя в конструкторе? –
hashArray = новый узел * [SIZE]; // Для массива –