How should I handle “cast from ‘void*’ to ‘int’ loses precision” when compiling 32-bit code on 64-bit machine?
The issue is that, in 32bits, an int (which is a 32bit integer) will hold a pointer value. When you move to 64bit, you can no longer store a pointer in an int – it isn’t large enough to hold a 64bit pointer. The intptr_t type is designed for this.