How can I pass a member function of a class as a pointer in C (pointer type expected: void *)?
You can't pass a pointer to a C++ class member as void *. A pointer to member is not really a pointer, it's a data structure. One way to get around this is to declare the member function static. A pointer to a static member function actually is a pointer to an ordinary function.
caller(void * a_ptr); //your caller func
typedef void * (*PF)();
static void* func(); //callback member function
pf = &A::func; // pf is a pointer to function
caller(void * a_ptr)
PF ptr = (PF) a_ptr;
void * val = ptr();//call member function