0

私はC++に比較的慣れていないので、何が起こっているのか正確にはわかりません

メインループの上に次のようにグローバルに定義しました

vector<Character*> monsters[2][3][6];
vector<Item*> loot[2][3][6];
vector<NPC*> npc[2][3][6];
vector<Objects*> objects[2][3][6];

Character.hファイル内で、オブジェクト配列も定義しました

extern vector<Objects*> objects[2][3][6];

オブジェクト配列を作成するまで、すべてが正常に機能していました。
モンスターの配列に8つ以上のオブジェクトを追加すると、奇妙な値がオブジェクトに表示され始め、オブジェクトのサイズが大きくなるようです。
私のコードはめちゃくちゃで、ここに何を含めるべきか正確にはわかりません。これで、私が何をしているのかがわかるといいのですが。

私はこれを徹底的にテストしていないので、私のすべてのアレイで非常によく起こる可能性があります...

4

2 に答える 2

0

モンスター配列が十分に大きくなかったため、「オーバーフロー」してオブジェクトを配列の外側に配置し、最終的に別の配列内に入ったようです。

ご不便をおかけして申し訳ございません。これが誰かに役立つことを願っています。

于 2012-05-28T13:41:10.713 に答える
0

最終的には、ニーズに合った独自の小さなGridクラスを作成するか、Boost.MultiArrayを使用してそのようなケースを処理する必要があります。ネストされた生の配列を操作すると、長期的には混乱につながります。ポインターの格納を避け、オブジェクトを値で格納したい場合もあります。

于 2012-05-28T14:28:59.853 に答える