0 / 0 / 0
Регистрация: 01.11.2020
Сообщений: 40
|
||||||
1 | ||||||
Исключение при вызове метода push_back в линейном односвязном списке06.05.2021, 12:33. Показов 1067. Ответов 3
Метки нет (Все метки)
Здравствуйте. Нужно реализовать метод пуш бэк для добавления элемента в конец списка. Реализовывать хочу через вложенный класс элемента, но при выполнении даёт исключение в 39-ой строке, функции set_val. Почему?
0
|
06.05.2021, 12:33 | |
Ответы с готовыми решениями:
3
Ошибка исполнения при вызове метода push_back Меняют ли элементы в vector свои адреса при вызове метода push_back? Вставка, перемещение в линейном односвязном списке Поиск предыдущего элемента в односвязном линейном списке |
129 / 81 / 49
Регистрация: 10.01.2020
Сообщений: 293
|
||||||
06.05.2021, 12:58 | 2 | |||||
Сообщение было отмечено romcheg как решение
Решение
Пытаетесь доступиться к нулевому указателю, посерьезнее относитесь к таким вещам. Подобных ошибок в коде достаточно.
Также, в Getерах в классе Element, в вашем случае, возвращайте по ссылке(Sequence::Element*&).
0
|
0 / 0 / 0
Регистрация: 01.11.2020
Сообщений: 40
|
||||||
06.05.2021, 13:18 [ТС] | 3 | |||||
Спасибо! Но теперь выбивает такое-же исключение в функции get_Size() (В этом коде - 87 строка), где ptr=ptr->get_Next(); Я переделал код, но не думаю, что это повлияло. Для справки - в новом коде выбивает исключение в 41 строке "нарущение доступа для чтения. ptr было 0xCDCDCDCD."
Новый код:
0
|
129 / 81 / 49
Регистрация: 10.01.2020
Сообщений: 293
|
||||||
06.05.2021, 13:30 | 4 | |||||
romcheg, Сделайте лучше в классе Sequence поле size, которое будете получать и изменять при добавлении узла, чтобы не делать класс медленнее каждый раз перешагивая по всему списку.
romcheg, да еще и учитывая, что в void Sequence:: print_List() вы при каждой итерации вызываете этот метод, так это вообще не хорошо. Ну а сама ошибка, я полагаю, опять из-за потерянных указателей, за которыми, как я говорил ранее нужно следить.
1
|
06.05.2021, 13:30 | |
06.05.2021, 13:30 | |
Помогаю со студенческими работами здесь
4
Разместить элементы файла в динамическ памяти в односвязном линейном списке Написать функцию нахождения максимального значения в линейном односвязном списке Разместить элементы файла в динамической памяти в односвязном линейном списке Как в линейном односвязном списке переставить слова в обратном порядке? Вставка нового узла перед выбранным узлом в линейном односвязном списке Разместить в односвязном линейном списке в динамической памяти строки, начинающиеся с согласной буквы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |