dlsym() workaround return type
问题 The man page of dlsym() lists *(void **) (&cosine) = dlsym(handle, "cos"); as a workaround for casting the return value of dlsym() . What's the meaning of *(void **) (&cosine) here? I understand cosine is a function pointer defined previously, but I'm not sure why an ampersand & is needed before the name (an error without & ). Moreover, I don't figure out why the pointer of void * ( void ** ) is again used with * . 回答1: Let's unwrap it a bit at a time: &cosine This takes a pointer to the