我在将元素插入到我在代码中定义的某些元素的向量的指针中遇到问题(在本例中为Recipes)。在代码的其他部分,使用push_back似乎可以正常工作,但是如果在此代码中使用它:

{
    Recipe defaultRec;
    this->recipes_ = new vector<Recipe>;
    this->recipes_->push_back(defaultRec);
}


我收到以下错误消息:

“分配2.exe中的0x01164031处未处理的异常:0xC0000005:访问冲突读取位置0xcccccce0

recipes_的声明为:

vector<Recipe>* recipes_;


希望任何人能帮助我,在此先感谢。

最佳答案

您的代码对我来说看起来不错。我确定问题出在其他地方。

顺便说一句,为什么要使用指向矢量的指针?为什么不这样:

vector<Recipe> recipes_; //member

Recipe defaultRec;
recipes_.push_back(defaultRec);


至少这可以使您免于分配和解除分配。此外,最有可能的是,指向矢量的指针没有比上面的更好的服务了!

07-24 15:47