我写这篇文章是为了参考我最近的文章-Create a array of structs 所以,现在我得到的是以下代码:
struct MacroMas
{
int x;
int y;
int Delay;
int SemiAutoDelay;
int ammo;
void Cords(int x, int y, int Delay)
{
this->x = x;
this->y = y;
this->Delay = Delay;
}
};
MacroMas* temp()
{
MacroMas _ret;
MacroMas* macroMasArray = new MacroMas[107];
for (int index = 0; index <107 ; ++index)
macroMasArray[index] = MacroMas();
macroMasArray[0].Cords(-3, 4, 16);
macroMasArray[1].Cords(-3, 4, 17);
// Some more code
return macroMasArray;
感谢约翰,他以正确的方式帮助了我,但不幸的是,我不能接受这个答案,因为这仅消除了“随机化”错误。现在,这是一个稳定的问题-在数组中,只有第一个(macroMasArray [0])被正确存储,其他数组的元素获得的值与第一个相同。例如。 mascroMasArray [10]应为1,5,17,但应为-3,4,16。与第0个元素相同
答案 0 :(得分:0)
您只是误解了调试器。您总是在看零元素。其他元素具有正确的值,但是您没有在看它们。
因为您已将macroMasArray
声明为指向MacroMas
的指针,所以调试器假定它仅旨在指向单个对象。
您需要在监视窗口中具体键入所需的元素,例如
macroMasArray[1]
或确保突出显示整个元素,包括索引。