Main invokes CreateMe is the structure allocated inside the creator method or does the compiler detects that no one can access it so it makes new() allocate directly into x's var memory?temp is only modified and then returned, is the memory for it allocated in CreateMe's stack and then copied to the caller method stack or accessed directly?Data instance, the IL method init_Payload is called. So the stack traces looks something like the following .With that in mind, does the large structure gets copied 2 times or the compiler optmises that in some way?Main() -> CreateMe() -> init_Payload