为了练习,我正在尝试:
将 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/