创建结构数组#2

时间:2020-04-11 13:13:48

标签: c++

我写这篇文章是为了参考我最近的文章-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个元素相同

1 个答案:

答案 0 :(得分:0)

您只是误解了调试器。您总是在看零元素。其他元素具有正确的值,但是您没有在看它们。

因为您已将macroMasArray声明为指向MacroMas的指针,所以调试器假定它仅旨在指向单个对象。

您需要在监视窗口中具体键入所需的元素,例如

macroMasArray[1]

或确保突出显示整个元素,包括索引。

相关问题