#include int foo(int *p) { cout << p[0] << ' ' << p[1] << endl; return(0); } int aa[] = {0,1,2,3}; float bb[] = {0.5,1.5,2.5,3.5}; typedef int (* FN)(void *); main() { void *t, *r; t = aa; r = bb; ((FN)foo) (t); // cast needed in C++ to pass void* to int* }