请问一个问题?

我现在的一个项目中有一部分是这样子的:
有两个类A和B。main函数中有一个A的对象a,然后调用a对象的一个成员函数f。
在函数中,申明一个B的局部对象b。
类A和B是在不同的文件中,main函数也是在不同的文件中。
但是我在VS2008中单步调试的过程中,发现在函数f中生成的对象b中的数据异常。
类B的构造函数非常简单。但是我单步跟踪进入B的构造函数后,发现数据又是正常的。
但是出了B的构造函数后,观察对象b的数据,发现与刚才的数据不一致,为异常的数据。
比如对象b中的一个verctor在构造函数中没有任何操作,长度也是0,但是出了构造
函数后,这个vector的长度变得非常大。这样导致退出函数f后,发生如下错误:
Run-Time Check Failure #2 - Stack around the variable 'cvt' was corrupted.
但是我不在函数f中声明这个变量,而是在main函数中直接声明,没有任何问题。
请问这是什么原因?谢谢。是不是编译的问题呢?因为这几个文件都是放在同一个文件夹下》

作者: maoloverme1   发布时间: 2011-06-16

Run-Time Check Failure #2 - Stack around the variable 'cvt' was corrupted.
堆栈被破坏鸟

作者: c_losed   发布时间: 2011-06-16

无法得知, 要跟踪具体代码

作者: bdmh   发布时间: 2011-06-16

把你f函数贴出来看看

作者: q191201771   发布时间: 2011-06-16

运行时问题,

作者: dizuo   发布时间: 2011-06-16

代码很简单:
我做过实验:
f函数就是构造了一个对象,然后就返回。
构造函数也很简单。
赋值了几个字符串变量,都是空。
而且没有对我刚才说的那个vector进行操作。
而且只要是跟踪到B所在的那个文件,也就是观察this变量,数据都是正确的。
但是只要跑出那个文件,数据马上不正确。

作者: maoloverme1   发布时间: 2011-06-16

Run-Time Check Failure #2分析

作者: ouyh12345   发布时间: 2011-06-16

膜拜楼主结贴率。。。。

学习了。。

作者: aa1013911535   发布时间: 2011-06-16

无代码无真相

作者: luciferisnotsatan   发布时间: 2011-06-16

那为什么在B类所在的文件中单步跟踪数据都是正确的,但是跑出来对象就发生变化了呢?

作者: maoloverme1   发布时间: 2011-06-16

具体问题具体分析!请楼主贴代码!

作者: dingshaofengbinbin   发布时间: 2011-06-16

将cvt附近声明的大数组前面加static从堆栈区挪到全局数据区。

作者: zhao4zhong1   发布时间: 2011-06-16