簡體   English   中英

為什么我在嘗試推送向量時遇到std :: bad_alloc錯誤?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM