C ++
Вот часть моего кода, которая выдает ошибку:
IDlist->push_back(lex->getCurrentToken());
IDList — это вектор, который определяется следующим образом:
std::vector<Token*>* IDlist;
Почему эта строка кода не может выдвинуть мой объект Token? Благодарю.
РЕДАКТИРОВАТЬ:
Когда я пытаюсь это:
Token* t = lex->getCurrentToken();
IDlist->push_back(t);
Я получаю ту же ошибку; это происходит при попытке толкания в векторе.
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);
Других решений пока нет …