c - 声明一个返回数组的函数指针

标签 c pointers function-pointers

为了练习,我正在尝试:

fubar 声明为指向函数的指针,该函数接受指向 char 的指针并返回指向包含 24 个元素的数组的指针,其中每个元素都是指向一个struct foo

我的逻辑是:

-fubar 是指向采用 char 指针的函数的指针: (*fubar)(char*)

-...返回一个指向 24 个 elem 的数组的指针,其中每个 elem 都是一个 struct foo:

(struct foo *)(*fubar)(char*)[24]

我的逻辑正确吗?

最佳答案

修复语法错误并删除 struct foo * 周围的括号后,

struct foo* (*fubar)(char*)[24]

...您出错的部分是它实际上返回一个由指针组成的数组,而不是指向数组的指针。为了声明指向数组的指针,您需要一组额外的括号:

struct foo (*(*fubar)(char*))[24]

您可以假装星号属于括号内的标识符(即数组的名称)。

关于c - 声明一个返回数组的函数指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27122155/

相关文章:

c - 不使用 '&' 运算符初始化函数指针

c++ - 如何在链表的节点之间移动?

c++ - 在 C++ 中传递对指针的引用

c++ - Lambda 引用自身

c - 如何将 char 数组转换为 C 中的函数指针?

c++ - 如何声明模板化函数以便可以在类构造函数/函数中传递

c - exit() 会在 _SUCCESS 和 _FAILURE 上释放分配的内存

c - 在 C 中通过引用传递或使用全局变量

c - C 中的语法困惑

c - 不明白C中的指针