Reputation: 101
Is it possible to create a pointer to a function pointer, i.e.
int32_t (*fp[2])(void) = {test_function1, test_function_2}; // initialize a function pointer
<unknown> = fp;
What needs to be written in place of unknown? With "normal" arrays, I could do this:
int a[2] = {0, 1};
int* p = a;
Upvotes: 8
Views: 14865
Reputation: 213276
typedef void(*func_ptr_t)(void); // a function pointer
func_ptr_t* ptr_to_func_ptr; // a pointer to a function pointer - easy to read
func_ptr_t arr[2]; // an array of function pointers - easy to read
void(**func_ptr_ptr)(void); // a pointer to a function pointer - hard to read
void(*func_ptr_arr [2])(void); // an array of function pointers - hard to read
Upvotes: 35
Reputation: 141534
typedef int32_t FP(void);
FP *fp[2] = { test_function1, test_function2 };
FP **p = fp;
Upvotes: 3