传递参数错误
时间:10-02
整理:3721RD
点击:
C写的,在一个函数调用子函数时,向子函数传递的参数值出现错误,如:
func1()
{
int i=0;
i=**;
func2(i);
}
func2(int x)
{
}
在调试中进入func2,发现x不是需要的**,哪位大侠指点下.
func1()
{
int i=0;
i=**;
func2(i);
}
func2(int x)
{
}
在调试中进入func2,发现x不是需要的**,哪位大侠指点下.
单步执行调用前,到进入 func2 哪几句,跟踪一下,看看是哪儿出乱子了。
谢谢大侠,单步看没看出什么问题,在fun1都好好的,一进入func2就发现不对了,是不是哪里设置不好?
难道推入堆栈里的参数值居然会改变吗?
不是看 i 的值好不好,应该看调用时是否把正确的 i 值推入堆栈? func2 中是否在正确的位置取参数 i 的值。