Mostly cast to char* for pointer arithmetic, but also one missing indirection, and one "void *v, x;" fix.