ОШИБКА: невозможно разыменовать итератор конечного спискаC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 ОШИБКА: невозможно разыменовать итератор конечного списка

Сообщение Anonymous »

Я заполнил список значениями. Я пытаюсь использовать их снова один за другим.

Я пробовал while (!config.empty()) и удалил front() после использования это. до сих пор не понимаю, где что-то пошло не так.

Код: Выделить всё

std::list config;
Заполненный конфиг (после config.push_back()):

Код: Выделить всё

config[0]:
int testnumber = 1;
string testname = "Test1"

config[1]:
int testnumber = 2;
string testname = "Test2";

config[2];
int testnumber = 3;
string testname = "Test3";
---------------------------------------------------------------------
Logic* pLogic;
Object* pObject = config.front(); // config[0]

if (pObject) // while(!config.empty()) -- tried here
{
// do something
pLogic = new Logic(pObject);
config.pop_front();
}
ЛОГИКА:

Код: Выделить всё

Object* m_pObject;

Logic::Logic(Object* pObject)
:m_pObject(pObject)
{}

// Accessed config in other functions with m_pObject
Код работает нормально и получает выходные данные. Однако в итоге получаем

Код: Выделить всё

ERROR: Debug assertion failed
Expression:cannot dereference end list iterator


Подробнее здесь: https://stackoverflow.com/questions/562 ... t-iterator
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»