Pointers are always the same size on the same arch, regardless of datatype it points to.
Otherwise things like casting between different pointer types be useless, and break a lot of things.
Many common coding techniques depend on casting between for instance a void pointer (or a char) to various structs, depending on size.
Take even the standard printf(), is must be able to take pointers to various kinds of data. If pointers were of different size, implementing printf could get very messy.