我正在尝试创建并调用函数指针,但是当我尝试调用函数指针时,我的程序崩溃了,Valgrind给了我一个错误。
结构中的函数指针定义为:
BOOLEAN (*function)(int * input_int);
然后我将其称为:
array[0].function(input);
(其中input是int)
当我调用它时虽然我在Valgrind中收到错误,但跳转到无效地址。我在这里做错了什么?
编辑:
我的不好就是如何定义虚拟函数:
array[0].function = &dummy_function;
BOOLEAN dummy_function(int * input_int)
{
if(input_int == 0)
return TRUE;
}
答案 0 :(得分:0)
输入不应该是整数而是整数指针 而不是:
array[0].function(input);
尝试:
array[0].function(&input);
也可以使用
array[0].function = dummy_function;