Pointer to Function Pointer

10,103

Solution 1

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

Solution 2

typedef int32_t FP(void);

FP *fp[2] = { test_function1, test_function2 };
FP **p = fp;
Share:
10,103
Admin
Author by

Admin

Updated on June 18, 2022

Comments

  • Admin
    Admin almost 2 years

    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;
    

    Many thanks in advance.