Is there any method for calling a function, just knowing its address in the pointer, allows you to specify a type pointer "void *(*)(void *)", as well as the number and type of its parameter?
"void *(*)(void *)"
A function can have any number of parameters!
No, not in any portable or standard mode.
However, there is a standard way to pass a variable number of arguments between functions. Take a look vsprintf. Basically, you need a version of a function that accepts va_list.
vsprintf
va_list
Roughly, no.
, , , , . , , 0 1 2 . 2, , () .