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 文件中,我还定义了 objects 数组

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

在我创建对象数组之前,一切正常。
看来,如果我向怪物数组中添加超过 8 个对象,奇怪的值就会开始出现在对象中,并且对象的大小会增加。
我的代码一团糟,我不确定我应该在这里包含什么。我希望这足以让您了解我在做什么。

我还没有彻底测试过这个,所以它很可能发生在我所有的阵列上......

4

2 回答 2

0

最终,您想编写Grid适合您需要的自己的小类,或者使用Boost.MultiArray来处理这种情况。从长远来看,使用嵌套的原始数组会导致混乱。也许您还想避免存储指针并按值存储对象。

于 2012-05-28T14:28:59.853 回答
0

看起来怪物阵列不够大,所以它“溢出”并将对象放置在阵列之外,从而最终进入另一个阵列。

给您带来的不便深表歉意。我希望这可以帮助别人。

于 2012-05-28T13:41:10.713 回答