VC ++返回代码的作用是什么?

时间:2011-10-06 09:04:25

标签: c++ windows visual-c++

我有一个代码。像这样:

int functionA (){
    Foo(**,**,**);
    return 0;
}

Foo()是一个巨大的功能(超过10,000行)。其中我并不了解all.Foo函数包含一些多线程代码。

现在的问题是,如果我在Foo之后立即“返回”代码,则可以正确运行Foo。

如果我在Foo()和“return”之间插入一些其他代码(甚至是一个非常简单的cout代码)。 Foo函数会很奇怪(部分无法正常运行)。

我调试了这个东西3天了。什么都没找到。

1 个答案:

答案 0 :(得分:1)

  

如果我在Foo()和“return”之间插入一些其他代码(甚至是一个非常简单的cout代码)。 Foo函数会很奇怪(部分无法正常运行)。

听起来像Foo以某种方式损坏了堆栈。您可能会发现声明冗余变量(从而更改堆栈的内容)“修复”了问题。

我会寻找一种能够在代码中发现内存问题的工具。如果您没有这样的工具,请在分配内存的所有用法中仔细查看