У меня возникла проблема с изменением адреса указателя в структуре. Функция получает тип услуги (указатель на структуру) и идентификатор. Услуга содержит связанный список квартир типа (указатель на структуру квартиры), и я хочу найти квартиру с данным ID и удалить ее из списка. Проблема это- когда я вернуться к исходной функции, сервис-> listedApartment все еще указывает точно так же, как и раньше ..Связанный Список в структуре
ApartmentServiceResult serviceDeleteById(ApartmentService service, int id) {
Node previous = NULL;
Node after = NULL;
Node current = service->listedApartments;
while (current != NULL) {
after = current->next;
if (current->id == id) {
apartmentDestroy(current->apartment); //deletes the apartment
free(current);
if (previous == NULL) {
service->listedApartments = after;
} else {
previous->next = after;
service->listedApartments=previous;
}
return APARTMENT_SERVICE_SUCCESS;
}
previous = current;
current = current->next;
}
return APARTMENT_SERVICE_NO_FIT;
}
@wildplasser - Если вы заметили, что есть возвращение в конце этого оператора if. Поэтому это не должно быть проблемой –
К сожалению, я смутился тем, что '{}', как мне кажется. И насыпь вспомогательных переменных, и конечный 'p = p.next; ' , – wildplasser