分页: 1 / 1

一个关于vector的奇怪问题

发表于 : 2007-12-22 19:10
cxdream
一个在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)前后都是不变的),。

百思不得其解!请问大虾这个问题何解?

谢谢!

发表于 : 2007-12-22 20:23
windwiny
你说的是直接复制二进制文件过去执行?


升级了库不保证二进制兼容

发表于 : 2007-12-22 20:31
windwiny
重复了

发表于 : 2007-12-22 20:33
windwiny
重复了

发表于 : 2007-12-22 21:37
cxdream
windwiny 写了:你说的是直接复制二进制文件过去执行?
----------------------------------------------------------------
no! 是把源代码(cpp)在新系统下重新编译后执行。

升级了库不保证二进制兼容

发表于 : 2007-12-23 21:32
icosagon
你贴的东西太少了