stl容器类型作为参数传递的问题
degel 2011-05-17 11:23:25 近日遇到一个比较匪夷所思的问题,由于工程比较复杂,我把问题简化描述如下,如果有类似情况的朋友们可以交流下解决方案。
此问题只在vs2008下出现。
一个函数为 void Fun(int i1,int i2,int i3,int i4, std::list<OBJECT>& rlist )
{
……
}
其中struct OBJECT
{
int m1;
int m2;
}
当有一个函数为:
void CallFunc(int i1,int i2,int i3,int i4, std::list<OBJECT>& rlist )
{
//调用Fun
Fun( i1, i2, i3, i4, rlist );
}
调用前各个参数并无异常,调用后进入函数Fun时前面所有int类型函数正常,唯独std::list参数错误,
具体表现为内部数据错误(比如rlist.front直接导致程序当掉),list大小变成非常夸张的数字;
另外,当我把最后一个参数类型改成VECTOR<object>等容器也依旧出现类似问题。
不知道我描述得是否详细,烦请大家看看,谢谢