假设我们有一个函数指针:
void (*func0)(void);
其还定义为:
void func0(void) { printf( "0\n" ); }
但是,假设在某些时候我们尝试以某种方式访问函数指针,那么当我进入代码时,如果 MS VS 调试器显示 func0 实际上指向 0x0000,这意味着什么?另外,请让我知道最好的解决办法是什么?谢谢。
取消引用空指针是未定义的行为。修复方法只是确保指针引用适当的函数。
在你的情况下,你想要这样的东西:
void MyFunction(void)
{
printf( "0\n" );
}
然后你可以分配给func0
:
func0 = &MyFunction;
请注意,我对函数指针变量和实际函数使用了不同的名称。
现在您可以通过函数指针调用该函数:
func0();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)