Hey thanks for getting it cleared for me!

lets go one by one,

1) The macro is defined and it is replaced by a particular value (in this case it is Variable[0] or variable[1]) during compile time, thats fine.
2) The main issue that iam facing is that the variable "Variable" is an Array, thats implicit, the next thing is that, initially when the program is compiled, as per the concept the pre-processor will replace all the Macros found in the program by their repective values as defined in the beginning (or in a function in this case, even i found that to be dumb , nonetheless may be that was required for that particular code), here as per the question the value of "Variable" (which is the pointer to the address of the value) is passed from another function or maybe Main(), and this is done during runtime (i hope iam not wrong here), so when we combine both the scenarios,

At one side we have a Macro being replaced but then with what will it be replaced is where iam getting the beating, ie., the array is initialized or formed during compile time but its content would be some garbage value as there is nothing in the array right now! I really hope you understood my confusion.

Please revert to me if any more clarification is required, as i need to get this thing clear in my mind!