I just need a simple clarification of memory allocation of an object
Lets say I have the following class:
public class Test
{
public int a;
public Test(int A)
{
a = A;
}
}
////Main program
Test test1 = new Test(32);
Test test2 = test1;
test2.a = 5;
Print(test1.a.ToString());// output =5
Print(test2.a.ToString());// output =5
My question is:
I know that value types are allocated in the stack and that reference types are allocated in the heap. But when an object is created and it has a value type field, were would the field be allocated?. When I create a copy of test1
and assign it to test2
both objects are pointing to the same memory location, would this mean that int a
has only one copy in the stack and that's why both objects have the same output of 5?.
No comments:
Post a Comment