%X is used to print hexadecimal
%p is used to print pointers, in hexadecimal
I understand that using %x instead of %p might result in instances where the values of the hexadecimal is truncated resulting in inaccuracies.
When printing hexadecimal with %p instead of %x, the only drawback is the huge numbers of 0s at the MSB.
So, is there any case where I cannot use %p to substitute the %x.