Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
HELL-FIRE
Заблокирован
#1

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

25.08.2016, 16:21. Просмотров 116. Ответов 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++):

реализация итератора - C++
Реализация класса List и его итератора: #ifndef LIST_H #define LIST_H #include&lt;iostream&gt; template&lt;class T&gt; class List ...

Валидность итератора - C++
Допустимо ли делать такие проверки? Код то отрабатывает, но можно ли так делать? std::vector&lt;int&gt; vec = {1, 2, 3, 4, 5}; auto it =...

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

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

Реализация Map итератора - C++
Можно ли показать реализацию и применение простейшего итератора для данного контейнера, который я создал? #include&lt;iostream&gt; ...

Инкремент невалидного итератора - C++
Привет. Этот вопрос задали знакомому на собеседовании... Что произойдет при инкременте невалидного итератора?

2
John Prick
805 / 738 / 146
Регистрация: 27.07.2012
Сообщений: 2,110
Завершенные тесты: 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
Привет! Вот еще темы с ответами:

Безопасное использование итератора С++ - C++
перебираем в цикле контейнер: for (auto it = A.begin(); it != A.end(); ++it) потом где то внутри удаляем его элемент, при чем не...

Ошибка в объявлении итератора - C++
Пытаюсь создать класс deque на основе класса vector. Создал итераторы для deque(все работало) vector&lt;double&gt; ::iterator begin() ...

Возврат итератора из функции - C++
в чем заключается проблема с возвратом итератора и как ее исправить? заранее спасибо за ответ =) (ожидаемый от программы ответ &quot;Yes&quot;,...

Наследование стандартного итератора - C++
Добрый день! Хочу сделать класс &quot;Фильтрующий Итератор&quot; - наследованный от std::vector&lt;int&gt;::iterator, который будет перечислять только...


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

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

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