在下面的例子中,我调用了一个 Func
并将指针传递给它,但在被调用的函数中,参数将指针值显示为完全虚假的东西。如下所示。
bool flag = Func(pfspara);--> pfspara = 0x0091d910
bool Func(PFSPARA pfspara) --> pfspara = 0x00000005
{
return false;
}
为什么 pfspara
会变成一些伪造的指针?我无法在调试中重现问题,只能在生产中重现。
谢谢。
最佳答案
如果您尝试在 Visual Studio 中调试优化代码,您不能总是依赖调试器正确显示变量值 - 特别是如果变量未被使用,编译器可能会优化它。
尝试运行这个:
bool Func(PFSPARA pfspara)
{
printf("%x\n", pfspara);
return false;
}
关于c++ - 为什么指针在函数转换期间会改变自身?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/214700/