std::map使用出错_Nodeptr _Pnode = _Root();

http://blog.csdn.net/wuhuiran/article/details/2122221


std::map使用出错 _Nodeptr _Pnode = _Root();
今天遇到一个问题,使用map的时候出现“非法访问”的错误,错误代码在
_Nodeptr _Lbound(const key_type& _Keyval) const
       {   // find leftmost node not less than _Keyval
       _Nodeptr _Pnode = _Root();
       _Nodeptr _Wherenode = _Myhead; // end() if search fails
我是这样使用的。演示代码:
Std::map<int, int> map_test;
Map_test[1] = [2];
这样使用怎么看都没有错误啊,可是就是出错了还。这个郁闷啊。
一开始怀疑栈空间不够用,就改的很大,还是出错。
怀疑map内存被覆盖。后发现这个map只有在有的地方会出错,放别的地方就不会出错了。于是一点一点改变map在代码中的位置,最后终于找到了。原来我的一个字符串数组定义的500个字节,可是使用strcpy拷贝进入了一个700多字节的字符串,这样就把在其后面的map给覆盖了一部分内存,晕。(注:字符串数组【500】和map都是一个类的成员变量)
把字符串数组大小改为最大可能值,问题解决。


Add by shuixin536: 主要问题还是内存大小不一致的问题,从内存上去考虑

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值