您的位置:首页 > Web前端 > Node.js

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

2008-02-26 14:27 351 查看
 
std::map使用出错_Nodeptr _Pnode = _Root();
今天遇到一个问题,使用map的时候出现“非法访问”的错误,错误代码在

[align=left]_Nodeptr _Lbound(const key_type& _Keyval) const[/align]
[align=left]       {   // find leftmost node not less than _Keyval[/align]
[align=left]       _Nodeptr _Pnode = _Root();[/align]
       _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都是一个类的成员变量)
把字符串数组大小改为最大可能值,问题解决。
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  search less