Is there an integer type with the same size as pointer? Guaranteed on all microarchitectures?
No, the closest you will come to a portable pointer-capable integer type would be intptr_t and ptrdiff_t.
intptr_t
ptrdiff_t