C ++ 以下是我的代码中引发错误的部分:
IDlist->push_back(lex->getCurrentToken());
IDList是一个定义如下的向量:
std::vector<Token*>* IDlist;
为什么那行代码不能推送我的Token对象?感谢。
编辑:
当我尝试这个时:
Token* t = lex->getCurrentToken();
IDlist->push_back(t);
我得到同样的错误;当尝试推入向量时会发生这种情况。
答案 0 :(得分:2)
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);