0
Normally, in C#, you have no control over memory allocations - and don't need any. The CLR does a good job of managing memory for you.
As structs are value types simply assigning them to a different variable copies them to a new memory location:
a va = new a();
a vb = va; // va's contents have been copied to vb's memory location
However, it is possible - by various means - to copy managed structs to the unmanaged heap and back again, as the CLR has no control of unmanaged memory.
So what exactly are you trying to do here?