Is there an integer type with the same size as pointer? Guaranteed on all microarchitectures?
The answer seems to be "no", but if all you need is a type that can act as both, you can use a union:
union int_ptr_t { int i; void* p; };