There are two mechanisms which prevent what you try to do here.
- Virtual memory
- Address randomization
With address randomization the image would be loaded at different addresses every time.
If you really mean a hardware RAM address, then you need to do this from kernel space anyway as you don't know which physcial address a page get assigned to.
If you declare a global variable it will always have the same offset when the program is loaded as long as you don't change the program. If this is enough, then you can use this registryx setting to disable address randomization
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\MoveImages
However, this would obviously only work on machines where you change this setting. Also if you recompile the program, then your memory layout may change and the variable may have a different address.
The question of course is, what you want to achieve with this?