Почему я получаю ошибку std :: bad_alloc при попытке вставить вектор?

C ++
Вот часть моего кода, которая выдает ошибку:

IDlist->push_back(lex->getCurrentToken());

IDList — это вектор, который определяется следующим образом:

std::vector<Token*>* IDlist;

Почему эта строка кода не может выдвинуть мой объект Token? Благодарю.

РЕДАКТИРОВАТЬ:

Когда я пытаюсь это:

Token* t = lex->getCurrentToken();
IDlist->push_back(t);

Я получаю ту же ошибку; это происходит при попытке толкания в векторе.

0

Решение

std::vector<Token*>* IDlist;

IDlist — это указатель, который указывает на вектор, и вы не new,
Вы должны выделить IDlist перед его использованием:

IDlist = new  std::vector<Token*>();

Но какой смысл использовать указатель на вектор? Просто объявите IDlist как переменную:

std::vector<Token*> IDlist;
Token* t = lex->getCurrentToken();
IDlist.push_back(t);
2

Другие решения

Других решений пока нет …