Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
HELL-FIRE
Заблокирован
#1

Возвращение итератора и segmentation faul - C++

25.08.2016, 16:21. Просмотров 132. Ответов 2
Метки нет (Все метки)

В некотором месте софта есть код наподобие этого:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
...
//В current->children ниже, children это:
QList<BaseItem*> children;
...
void getItem(QString name)
{
     for(auto it : current->children)
     {
          if(it->getName() == name)
               return it;
     }
     return nullptr;            
}
В общем иногда я ловлю segmentation faul на месте получения имени...
Хз, вообще в таком коде и в таком цикле я что возвращаю, указатель на объект или итератор, что то я не пойму... ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.08.2016, 16:21
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Возвращение итератора и segmentation faul (C++):

Валидность итератора
Допустимо ли делать такие проверки? Код то отрабатывает, но можно ли так...

Разыменование итератора
Делаю предикат-функцию поиска внутри вектора,состоящего из экземпляров...

реализация итератора
Реализация класса List и его итератора: #ifndef LIST_H #define LIST_H ...

Проверка итератора
как проверить указывает ли на что либо итератор или он уже неправильный?

Ошибка в объявлении итератора
Пытаюсь создать класс deque на основе класса vector. Создал итераторы для...

Достать строку из итератора
имеется map&lt;string, vector&lt;string&gt; &gt; container; for (map&lt;string,...

2
John Prick
831 / 764 / 256
Регистрация: 27.07.2012
Сообщений: 2,176
Завершенные тесты: 3
25.08.2016, 16:25 #2
Цитата Сообщение от HELL-FIRE Посмотреть сообщение
Хз, вообще в таком коде и в таком цикле я что возвращаю
Ничего:
C++
1
void getItem(QString name) // <-- void (!)
0
HELL-FIRE
Заблокирован
25.08.2016, 16:50  [ТС] #3
Цитата Сообщение от John Prick Посмотреть сообщение
void getItem(QString name) // <-- void (!)
ну я там опечатался, там конечно же должно быть BaseItem* getItem(QString name)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.08.2016, 16:50
Привет! Вот еще темы с решениями:

Наследование стандартного итератора
Добрый день! Хочу сделать класс &quot;Фильтрующий Итератор&quot; - наследованный от...

Отличие итератора от foreach
Есть ли разница между циклами? std::vector&lt;int&gt; vec; vec.push_back(4);...

Ошибка в классе итератора
В общем, решил я написать для своего класса, реализующего двунаправленный...

Упрощенная реализация итератора
- Доброго дня завсегдатаи ! Видел на Вашем форуме упрошенную реализацию...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru