Я продолжаю получать эту ошибку, когда я запускаю свою программу.
HEAP[PA1.exe]: Invalid address specified to RtlValidateHeap( 00C40000, 00C48880 )
PA1.exe has triggered a breakpoint.
Я сузил ее до своего деструктора, но я не уверен, почему это вызвало ее.
List::~List()
{
if (!nullptr) {
Item* toDelete = Head;
while (toDelete != NULL) {
Item* next = toDelete->Next;
delete toDelete;
toDelete = next;
}
}
Редактировать: я вижу, что моя проблема в моих конструкторах, но я не уверен, что мне нужно изменить. Ошибка происходит, когда я начинаю делать глубокую копию. Поэтому я предполагаю, что это конструктор копирования.
List::List()
{
Head = 0;
Prev = 0;
Next = 0;
}
List::~List()
{
Item* move = Head;
while (Head)
{
Head = move->Next;
delete move;
move = Head;
}
}
List::List(const List& copy)
{
Head = copy.Head;
Next= copy.Next;
Prev= copy.Prev;
}
List& List::operator=(const List& t)
{
Head = t.Head;
Prev = t.Prev;
Next = t.Next;
return *this;
}