-2

这是我面试时问的!

如何声明以 void 作为参数并返回指向整数的指针数组的函数指针数组?

有人可以帮忙吗?

4

2 回答 2

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 工具来确认。

于 2013-08-19T04:22:18.750 回答
1
typedef int* (*pt2Function)(void * data);
pt2Function funcArr1[10] = {NULL};


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

于 2013-08-19T04:09:39.100 回答