在参数数组中传递函数指针

时间:2014-02-10 11:11:32

标签: c function pointers void-pointers

我在C编码。

我有一些嵌套的函数调用,通过我传递的所有函数和void *指针数组,以便有大量的对象和双打。

变量

void
    **param;

通过并在我取消引用的函数内传递。

现在,我还需要传递一个函数指针,到目前为止,最简单的方法是在param数组中使用这个函数指针。但是将函数指针强制转换为void指针是非法的。我试图传递一个指向我的函数指针的指针但是我没有将这个void *解引用到函数指针中。

你们怎么解决这个问题?

-----------------已解决------------------

由于我不允许在8小时之前回答我自己的问题,因此我编辑了我的问题:

我找到了它!

我为我的函数指针定义了一个类型

typedef double func_ptr(type1&, type2, type3);

然后使用

// declare function pointer and assign value/function
func_ptr
    *func;
func = my_function;

// put pointer onto function pointer into array
void
    **param;
param[2] = &func; // [ space for this has been allocated somewhere ]

取消引用然后使用

func_ptr
    *func = *((func_ptr **) param[2]);

干杯

0 个答案:

没有答案