【发布时间】:2021-09-19 22:08:08
【问题描述】:
我试图在另一个函数中填充指向函数的指针数组,但我不知道该怎么做。
在我的函数下方填充数组
void* fill_tab_f(void (***tab_f))
{
*tab_f[0] = ft_pt_char;
*tab_f[1] = ft_pt_str;
*tab_f[2] = ft_pt_ptr;
*tab_f[3] = ft_pt_int;
*tab_f[4] = ft_pt_int;
*tab_f[5] = ft_pt_un_int;
*tab_f[6] = ft_pt_hexa_min;
*tab_f[7] = ft_pt_hexa_maj;
return NULL;
}
下面是函数指针数组的声明和函数的调用来填充我的数组。
void(*tab_f[8])(va_list *, Variable*);
fill_tab_f(&tab_f);
感谢您的回答。
【问题讨论】:
-
为什么做不到呢?编译失败了吗?有错误信息吗?当你尝试使用它时它会崩溃吗?
-
在参数中有一个三星号,然后取消引用你的数组成员,似乎有点奇怪。为什么不直接分配函数指针?
-
直觉上,我觉得你应该在这里使用数组初始化,而不是运行时函数。这一切都可以在编译时完成,除非您的意图是在运行时随意更改这些函数。有关详细信息,请参阅here。
标签: arrays c function call fill