Again, I (and probably the gcc aliasing warnings) would be happier if you used addresses of actual void*s, whose values you then use inside the loop body to initialize pointers of the intended types.  Casts are ugly and dodgy.