I think you can change a little . Using %d however works but better is using %p.
Because addresses are of value
DWORD (long)in 32 bit machines. So %d wont be a good idea.
Should the pointer address be permanent during all exe life?
It depends on where the pointer is referring.
Pointer addressing variables in stack region are not permanent.
While those addressing in Data may or may not remain constant.
And those pointing to code segment are permanent throughout exe life..
..Hope you got a solution .... :)