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?