首页 > 解决方案 > 将元素移动到空向量时缓冲区溢出

问题描述

您好,我正在尝试将一个元素从game_cards向量移动到hand向量。 game_cards有 20 个对象。但是当我运行我的代码时,即使我只是移动一个元素,我也会得到一个缓冲区溢出。我认为功能hand_out_card是正确的。我错过了什么吗?先感谢您

玩家.hpp:

std::vector<Cards *> hand; 

void hand_out_card(std::vector <Card*> &hand_cards){


            Card* c = hand_cards.back();
            hand_cards.pop_back();
            hand.push_back(c);


 }

主要.cpp:

std::vector<Cards *> game_cards; // has 20 card* objects

Player objects;
object.hand_out_card(&game_cards); // here I get a bufferoverflow

我希望 hand 有一个元素game_cards,为什么即使我只是移动一个元素,我也会得到一个 bufferoverlow ?

标签: c++vectorbuffer-overflow

解决方案


推荐阅读