一个关于vector的奇怪问题
发表于 : 2007-12-22 19:10
一个在ubuntu5.10(非虚拟机)下编写的运行正确的c++代码,放到ubuntu7.10(运行在VMware虚拟机中)中运行时出错:
经过GDB详细检测发现是在调用一个函数a时出错:
void a(char *fname, vector<element_type> &T)
{
......
}
......
a(fname,T);
.......
在ubuntu5.10下调用a(fname,T)后的结果是正确的,但在ubuntu7.10下调用a(fname, T)后发现T不是原来那个T了,T.size()成了一个非常大的数59734951,而且T和fname的地址也发生了变化(而在ubuntu5.10下T和fname的地址在调用a(fname,T)前后都是不变的),。
百思不得其解!请问大虾这个问题何解?
谢谢!
经过GDB详细检测发现是在调用一个函数a时出错:
void a(char *fname, vector<element_type> &T)
{
......
}
......
a(fname,T);
.......
在ubuntu5.10下调用a(fname,T)后的结果是正确的,但在ubuntu7.10下调用a(fname, T)后发现T不是原来那个T了,T.size()成了一个非常大的数59734951,而且T和fname的地址也发生了变化(而在ubuntu5.10下T和fname的地址在调用a(fname,T)前后都是不变的),。
百思不得其解!请问大虾这个问题何解?
谢谢!