現在のvector.push_back()メソッドでセグメンテーション違反が発生しています(私は思います)。
次にいくつかのサンプルコードを示します。
だから私は私のクラスのゾンビを持っています
class Zombie
{
public:
Zombie();
~Zombie();
SDL_Surface* image;
SDL_Rect box;
bool dead;
protected:
private:
// gets random coordinates around the screen
SDL_Rect get_zombie_rect();
};
コンストラクターは次のとおりです。
Zombie::Zombie()
:
dead(false),
image(load_image("Player.png")),
box(get_zombie_rect())
{
}
ゾンビには、create_new_zombie()という関数を使用してベクターを管理するためのハンドラークラスがあります。(ここに問題があります)
void Zombie_Manager::create_new_zombie()
{
Zombie newZombie;
zombies.push_back(newZombie);
}
これは、要素をベクトルに追加する正しい方法ですか?
ポインタを使用して動作するバージョンを取得することはできますが、これを実現するためのより簡単で正確な方法が必要です。
std :: vector.push_back()が新しい要素を浅くコピーすると、セグメンテーション違反が発生するのはなぜですか?私はそれを仮定するのは間違っていますか?