What's the syntax for declaring an array of function pointers without using a separate typedef? What's the syntax for declaring an array of function pointers without using a separate typedef? arrays arrays

What's the syntax for declaring an array of function pointers without using a separate typedef?


arr    //arr arr [] //is an array (so index it)* arr [] //of pointers (so dereference them)(* arr [])() //to functions taking nothing (so call them with ())void (* arr [])() //returning void 

so your answer is

void (* arr [])() = {};

But naturally, this is a bad practice, just use typedefs :)

Extra:Wonder how to declare an array of 3 pointers to functions taking int and returning a pointer to an array of 4 pointers to functions taking double and returning char? (how cool is that, huh? :))

arr //arrarr [3] //is an array of 3 (index it)* arr [3] //pointers(* arr [3])(int) //to functions taking int (call it) and*(* arr [3])(int) //returning a pointer (dereference it)(*(* arr [3])(int))[4] //to an array of 4*(*(* arr [3])(int))[4] //pointers(*(*(* arr [3])(int))[4])(double) //to functions taking double andchar  (*(*(* arr [3])(int))[4])(double) //returning char

:))


Remember "delcaration mimics use". So to use said array you'd say

 (*FunctionPointers[0])();

Correct? Therefore to declare it, you use the same:

 void (*FunctionPointers[])() = { ... };


Use this:

void (*FunctionPointers[])() = { };

Works like everything else, you place [] after the name.