gpt4 book ai didi

c++ - 为什么在尝试推送到 vector 时会出现 std::bad_alloc 错误?

转载 作者:行者123 更新时间:2023-11-28 03:23:11 61 4
gpt4 key购买 nike

C++这是我的代码中抛出错误的部分:

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

IDList 是一个 vector ,定义如下:

std::vector<Token*>* IDlist;

为什么那行代码无法推送我的 Token 对象?谢谢。

编辑:

当我尝试这样做时:

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

我得到了同样的错误;当尝试插入 vector 时会发生这种情况。

最佳答案

std::vector<Token*>* IDlist;

IDlist 是一个指向 vector 的指针,您还没有通过 new 分配它。使用之前需要先分配IDlist:

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

但是使用指向 vector 的指针有什么意义呢?只需将 IDlist 声明为变量:

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

关于c++ - 为什么在尝试推送到 vector 时会出现 std::bad_alloc 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14866644/

61 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com