填充指向 C 中另一个函数中的函数的指针数组

fill an array of pointers to functions in another function in C

我试图在另一个函数中填充指向函数的指针数组,但我不知道该怎么做。

下面是我填充数组的函数

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);

感谢您的回答。

你太复杂了

typedef int variable ;

void fill_tab_f(void (*tab_f[])(va_list *, variable *))
{

    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;
}

或者如果函数指针语法对您来说有点奇怪:

typedef int variable ;

typedef void (*funcptr)(va_list *, variable *);

void fill_tab_f(funcptr *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;
}