size_t in C – Understanding Pointer Size

c++

Let me first clarify that I am by now very familiar with definitions of size_t and intptr_t, and I don't want any repetitions of what they accomplish.

Instead I would like to know the following. Do you know of any platform, except x86/DOS (with its unbearable memory models) where the cast

void* a = ...;
size_t b = (size_t)a;

actually loses bits or bytes?

Thanks!

Best Answer

AFAIK, on AS/400 pointers are 128-bit, but size_t is defined to be 32-bit.