STL中map<>使用时出现的奇怪问题,有大虾知到是肯么回事吗?

xb_asp 2006-07-24 11:14:52
我是在普通DLL工程中使用Map的,定义如下:
map< DWORD, CTxtMessageProtocol > m_TxtMPList;
可能是在循环中进行如下查询操作时:
map< DWORD, CTxtMessageProtocol >::iterator iter = this->m_TxtMPList.find( pStream->getSystemStreamID() );
m_TxtMPlist的内存区域会偶发性的被全部填充成baadf00d请问这是STL的BUG吗?在对Map进行什么样的操作后会出现这样的情况呢?
...全文
226 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xb_asp 2006-07-25
  • 打赏
  • 举报
回复
to Hellboy:
new 和 delete与MFC的定义冲突,我在编译的命令行加了个 \force就能通过了
Hellboy 2006-07-24
  • 打赏
  • 举报
回复
http://blog.csdn.net/hellboy
这里有我写的一个内存越界检测小代码,加入到的项目去编译运行,可以发现内存访问越界的情况


程序员自家蜂产品专卖
http://shop33712512.taobao.com
xb_asp 2006-07-24
  • 打赏
  • 举报
回复
baadf00d 是系统初始化内存块的默认值吗?
DentistryDoctor 2006-07-24
  • 打赏
  • 举报
回复
map本身没这个问题,应该是其它代码破坏了对应的内存。
Hellboy 2006-07-24
  • 打赏
  • 举报
回复
可能是map的内存被你的一些其他的内存操作覆盖了。
比如 memcpy ,memmove,strcpy这些函数,很容易造成内存的越界访问。


==========广告签名============
http://shop33712512.taobao.com
淘宝店,专卖化妆品、自家蜂产品
==========广告签名============
oyljerry 2006-07-24
  • 打赏
  • 举报
回复
注意内存操作等
Hellboy 2006-07-24
  • 打赏
  • 举报
回复
把具体的出错提示贴出来看看


程序员自家蜂产品专卖
http://shop33712512.taobao.com
xb_asp 2006-07-24
  • 打赏
  • 举报
回复
to Hellboy:
你的代码很不错,谢谢!
现在我加到项目中要报一个"找到一个或多个多重定义的符号"的编译错误,我用的VS 2003是MFC DLL该如何解决呢?

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧