Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
main.c 655 B
#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);
}