![](/img/trans.png)
[英]Why am I getting std::bad_alloc when I have so much free memory available
[英]Why am I getting a std::bad_alloc error when trying to push to a vector?
C ++以下是我的代碼中引發錯誤的部分:
IDlist->push_back(lex->getCurrentToken());
IDList是一個定義如下的向量:
std::vector<Token*>* IDlist;
為什么那行代碼不能推送我的令牌對象? 謝謝。
編輯:
當我嘗試這個:
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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.