Кажется, вы пытаетесь создать массив указателей на функции. Код может выглядеть следующим образом (частичный код):
ExampleFn *a;
void init()
{
a = malloc(100 * sizeof *a);
a[0] = foo;
}
int main()
{
init();
ExampleFn x = a[0];
x();
}
В стандарте C тип void *
предназначен только для указателей на тип объекта, а не для указателей на функцию.
Вы можете создать двумерный или трехмерный зубчатый массив таким же образом, как и для типов объектов (например, см. Здесь ), просто используйте ExampleFn
вместо int
, как в этом примере.