Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我希望我的函数创建一个数组并为n指向函数的指针分配内存(例如,没有参数并返回 int 的函数)并返回指向该数组的指针。
n
我试着做:
void* f(int n){ return calloc(int (*arrayName[])(void),n); }
但我收到语法错误。我很陌生c,我试图挖掘一个小时如何解决这个问题,但没有成功。使用man我认为的页面calloc是要走的路,但我可能错了。
c
man
calloc
让您的生活更轻松并使用typedefs:
typedef
typedef int (*fp)(); fp * f(size_t n) { return calloc(n, sizeof(fp)); }
手卷宣言:int (*f(size_t n))()
int (*f(size_t n))()
或者,如果您不想要 typedef(提示:您仍然需要 typedef,只是为了完整性):将类型包装在 a 中sizeof():
sizeof()
return calloc(n, sizeof(int (*)(void)));