Я пытаюсь создать стек, используя структуру связанных списков.Проблема с реализациями связанных списков
Возможно, я ошибаюсь, но у меня возникают проблемы с функцией remove().
int Stack::remove(){
node* victim = new node;
int popped;
popped = top->element;
victim = top;
top = victim->next;
delete victim;
return popped;
}
Я получаю Glibc dectecting
двойной бесплатно или коррупции (из);
Поскольку я выделяю новую память жертве, разве я не должен удалять жертву, или это то, о чем мне не нужно беспокоиться?
Нет смысла выделять память или использовать новую для узла-жертвы. Помните, что указатель - это просто ссылка, поэтому просто указывайте на заголовок списка. Сохраните значение данных, переместите головку списка в следующий элемент (возможно, захотите проверить NULL), а затем удалите указатель темпа, который вы изначально указывали на голову. Это означает, что вы выскочили. – JonH