Suppose that I want to call a C function in a shared library. Suppose also that the only way I can call this function is through a function pointer.
That part I know how to do. That's solvable.
Now suppose that I want to call a varargs function, and the same caveats apply. I have to call this function through a function pointer.
How do I do it? Do I build my own va_list structure by hand? If so, how?
Code (Score:1)
#include <stdio.h>
#include <stdarg.h>
void bar(int cnt,
va_list ap;
va_start(ap,cnt);
while (cnt--) {
int a = va_arg(ap, int);
printf("%d ", a);
}
printf("\n");
}
int main() {
void (*b)(int,
b = bar;
b(2,1,2);
b(3,1,2,3);
return 0;
}
Or did I miss something?
Re: (Score:1)
Hmm, no. I missed
b = bar;in my example, which leads me to wonder why there was no crash.Thanks for the sanity check! Now I need to figure out how to add varargs support to NCI.