struct Collection { int array[10]; void apply(void *p, void (*fp)(void *, int)) { for (int i = 0; i < sizeof(array)/sizeof(array[0]); i++) fp(p, array[i]); } };