A pointer on a 32 bit machine has size 4 bytes, whereas on a 64 bit machine it has 8 bytes.
For example,
int i = 1;
ptr2int* int = &i
then
std::cout << "Size of pointer to i is " << sizeof(ptr2int) << std::endl;
gives 4 on a 32 bit machine, but 8 if calculated by a 64 bit processor.
Why is that?