#include <stdio.h> #include <stddef.h> typedef int (*fn_def)(void); int test1() { // function to call printf("Test\n"); } void convert_and_call(void *fnvptr_val) { // convert into pointer fn_def fnptr = (fn_def)fnvptr_val; fnptr(); } int main() { void* fnvptr = (void*)&test1; // print adress printf("%p\n", &test1); // cast into char array char* a=(char*)fnvptr; // print stuff printf("%s\n", a); printf("size: %ld\n",sizeof(a)); // cast into new void thing void * fnvptr2 = (void*)a; printf("%p\n", fnvptr2); // // convert into pointer convert_and_call(fnvptr2); }