Googling about, looks like `void *` is the right thing here, but `uintptr_t` is suggested as the variable type. I'm not clear on how portable that type is. Seems to have come in with C99.