How a program could generate the memory addresses for its variables, when it is about to run?