首页
社区
课程
招聘
[旧帖] 求教: 如何在Debug模式下遍历std::map数据 0.00雪花
发表于: 2015-2-12 09:39 3501

[旧帖] 求教: 如何在Debug模式下遍历std::map数据 0.00雪花

2015-2-12 09:39
3501
在游戏中,我可以获得std::map的基地址,并且在Release模式下,可以通过以下代码遍历
std::map<INT,TCHAR*> mapObject = (std::map<INT,TCHAR*>*)0x32ac4212;
for(std::map<INT,TCHAR*>::iterator iter = mapObject.begin(); iter != mapObject.end(); iter++)
{
     // 打印遍历结果
}

但是在Debug模式下,在mapObject.begin();的时候就会出错。因为之前没有对std::map中this->_Myhead头指针进行赋值。所以现在不知道改如何处理Debug模式下的遍历

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 183
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
经过沉思和做实验,发现Release版本的std::map会经过优化处理,所以此时使用debug版本的std::map,肯定存在关键数据取不到的情况。
2015-2-12 10:22
0
雪    币: 80
活跃值: (72)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
vc的map在Debug和Release下的内存模型是不一样的。
2015-2-12 12:16
0
游客
登录 | 注册 方可回帖
返回
//