Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;结构不';t存储值_C++_Visual C++ - Fatal编程技术网

C++ C++;结构不';t存储值

C++ C++;结构不';t存储值,c++,visual-c++,C++,Visual C++,我有一个问题,我做了基本结构 struct TRADEBOT_ITEM { BYTE Slot; BYTE Cat; BYTE Id; BYTE LVL; }; struct TRADEBOT_BUFFS { short BUFFID; short Duration; }; struct TRADEBOT_INVENTORY { short itemId; BYTE level; BYTE opt; BYTE op

我有一个问题,我做了基本结构

struct TRADEBOT_ITEM
{
    BYTE Slot;
    BYTE Cat;
    BYTE Id;
    BYTE LVL;
};
struct TRADEBOT_BUFFS
{
    short BUFFID;
    short Duration;
};

struct TRADEBOT_INVENTORY
{
    short itemId;
    BYTE level;
    BYTE opt;
    BYTE opt2;
    BYTE opt3;
    BYTE NewOption;
    BYTE Socket[5];
    int Expiration;

};
struct TRADEBOT_REQ
{
    short itemId;
    BYTE level;
    BYTE opt;
    BYTE opt2;
    BYTE opt3;
    BYTE NewOption;
    BYTE Socket[5];
};
struct TRADEBOT_MIX
{
    TRADEBOT_INVENTORY m_Inventory[64];
    TRADEBOT_REQ    m_Req[64];
    int ReqCnt;
};
struct TRADEBOT_DATA
{
    BYTE ID;
    BYTE Class;
    BYTE SPAWN;
    BYTE map;
    BYTE X;
    BYTE Y;
    BYTE Dir;
    BYTE Vip;
    WORD Strength;
    WORD Dexterity;
    WORD Vitality;
    WORD Energy;
    WORD Leadership;
    int ZEN;
    char Name[10];
    TRADEBOT_ITEM m_Item[9];
    TRADEBOT_BUFFS m_Buffs[5];
    TRADEBOT_MIX m_Mix[142];
};
            this->m_BotData[ID].m_Mix[ID].m_Req[cntr].itemId = ITEMGET(cat,idx);


            Token = GetToken();
            this->m_BotData[ID].m_Mix[ID].m_Req[cntr].level = TokenNumber;

            Token = GetToken();
            this->m_BotData[ID].m_Mix[ID].m_Req[cntr].opt = TokenNumber;

            Token = GetToken();
            this->m_BotData[ID].m_Mix[ID].m_Req[cntr].opt2 = TokenNumber;

            Token = GetToken();
            this->m_BotData[ID].m_Mix[ID].m_Req[cntr].opt3 = TokenNumber;

            Token = GetToken();
            this->m_BotData[ID].m_Mix[ID].m_Req[cntr].NewOption = TokenNumber;

            Token = GetToken();
            this->m_BotData[ID].m_Mix[ID].m_Req[cntr].Socket[0] = TokenNumber;

            Token = GetToken();
            this->m_BotData[ID].m_Mix[ID].m_Req[cntr].Socket[1] = TokenNumber;

            Token = GetToken();
            this->m_BotData[ID].m_Mix[ID].m_Req[cntr].Socket[2] = TokenNumber;

            Token = GetToken();
            this->m_BotData[ID].m_Mix[ID].m_Req[cntr].Socket[3] = TokenNumber;

            Token = GetToken();
            this->m_BotData[ID].m_Mix[ID].m_Req[cntr].Socket[4] = TokenNumber;

            this->m_BotData[ID].m_Mix[ID].ReqCnt++;
            cntr++;
它后来被用作

std::map<int, TRADEBOT_DATA> m_BotData;
并且结构保持空白,没有写入任何信息。我不知道为什么

另外,如果我更改值
TRADEBOT_MIX m_MIX[142]
TRADEBOT_MIX m_MIX[143]应用程序崩溃,也不知道为什么。任何想法都将不胜感激


我正在使用Visual Studio 2010

尝试在调试器中运行它,逐行遍历它,以查看实际发生的情况。此外,如何初始化
ID
cntr
?ID从文件cntr is int cntr=0读取;我试着调试它,它只是简单地完成了行,就像一切正常一样,但没有保存任何值。。另外,如果我将m_Mix[142]的值更改为m_Mix[143],应用程序崩溃,并且没有可用的源或数据,这会使我混淆添加大量的断言。例如,确保
ID
在范围内。确保
cntr
在范围内。此外,使用参考以避免在每次作业中搜索地图
TRADEBOT_MIX&botMix=this->mBotData[ID].mMix[ID]botMix.m_Req[cntr]..`或类似的东西。另外,您是如何确定结构保持为空的?两点-在map和structure数组中使用ID进行索引可能表明抽象不正确。其次,您是否检查代码中的ID是否超过142?