Мне пришлось создать структуру типа связанного списка, которая использует STL. В нем есть метод, который должен удалять объекты из этой связанной структуры списков. В настоящее время у меня есть метод, который снова привязывает таблицу обратно, но я не уверен, что я действительно правильно удаляю объект из памяти. Я в настоящее время сделать следующее:Удаление элемента в месте указателя из памяти C++?
myItem* item = current; //Current position and item to be deleted.
/* Code to move all elements around */
current = current->next; //Move current position along one in the list.
delete item;
Мой страх с тем, что все, что я делаю создает новый указатель затем удалить указатель позже, когда я переехал мое текущее местоположение вместо удаления самого элемента.
Я сделал немного прибегая к помощи и попытался добавить команду удалить [], но затем я получаю ошибку сегментации, я редактировал свой код, чтобы выглядеть следующим образом:
myItem* item = current; //Current position and item to be deleted.
/* Code to move all elements around */
current = current->next; //Move current position along one in the list.
delete[] item; //Deletes item at memory location
delete item; //Deletes temporary pointer
Если я держу его как на верхнюю часть кода программа выполняет правильно и делает то, что она должна делать, но я боюсь, что я не очищаю свой след памяти должным образом.
Счастливые дни! Приятно видеть, что я правильно понимаю, я просто хотел убедиться, что так оно и было. Когда вы впервые начинаете работать с указателями, все может немного запутаться. Я приму это через 3 минуты! : D – Scott