struct中的数组内的函数指针

时间:2014-05-25 16:26:14

标签: c function-pointers

我正在尝试创建并调用函数指针,但是当我尝试调用函数指针时,我的程序崩溃了,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;
}

1 个答案:

答案 0 :(得分:0)

输入不应该是整数而是整数指针 而不是:

array[0].function(input);  

尝试:

 array[0].function(&input);  

也可以使用

 array[0].function = dummy_function;