C中的函数指针数组

Mus*_*afa 3 c function-pointers function

我想创建一个函数指针数组,并能够在for循环中调用它们.我怎样才能做到这一点?我试过了:

void (**a) (int);
a[0] = &my_func1;
a[1] = &my_func2;
a[2] = &my_func3;

for ( i = 0; i < 3; i++){
    a[0]();
    (*a[0])(); // Neither does work
}
Run Code Online (Sandbox Code Playgroud)

但我想我错过了一些语法:

error: too few arguments to function ‘*(a + (long unsigned int)((long unsigned int)i * 8ul))’
Run Code Online (Sandbox Code Playgroud)

MBy*_*ByD 7

您声明的函数应该将int作为参数:

a[0](1);
Run Code Online (Sandbox Code Playgroud)

另请注意,您声明了一个指向函数指针的指针,但是您没有为它们分配任何内存(我假设这仅在示例中),否则它应该是:

void (*a[3]) (int);
Run Code Online (Sandbox Code Playgroud)