声明一个函数指针数组,该函数指针将void作为参数并返回一个指向整数的指针数组

时间:2013-08-19 04:05:50

标签: c

这是在接受采访时向我询问的!

如何声明一个函数指针数组,它将void作为参数并返回一个指向整数的指针数组?

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

让我们看一下......将p作为参数的函数指针void可以这样声明:

void (*p)(void);

返回指向整数的指针数组的方法可能如下所示:

 int** (*p)(void);

或者,更严格地遵循“数组”的定义(这在实践中不太可能) - 请注意,正如Amir所指出的,C中的函数实际上不能返回数组,但可以返回指向数组的指针( 100个int指针)如下:

int* (*(*p)(void))[100];

七个这样的野兽阵列可以表示为:

int* (*(*ptrs[7])(void))[100];

void当然可以放弃,让我们留下:

int* (*(*ptrs[7])())[100];

这可以通过优秀的cdecl tool确认。

答案 1 :(得分:1)

typedef int* (*pt2Function)(void * data);
pt2Function funcArr1[10] = {NULL};


我不认为有可能返回一个数组,你应该创建一个pionter