using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MemoryTest4 { struct S1 { int x; int y; } struct S2 { public S1 structVal; public int x; public S1 structVal; } class C1 { public S1 struct1Val; public S2 struct2Val; } struct S3 { public S1 struct1Val; public C1 class1Val; } class C2 { public C1 class1Val1; public C1 class1Val2; } class Program { public static void f1(S3 struct3Val) { S1 struct1Val = new S1(); C1 class1Val = new C1(); // Draw stack / heap memory here } public static void f2(C2 class2Val) { S1 struct1Val = new S1(); C1 class1Val = new C1(); // Draw stack / heap memory here } static void Main(string[] args) { S1 struct1Val = new S1(); S2 struct2Val = new S2(); S3 struct3Val = new S3(); struct3Val.class1Val = new C1(); C1 class1Val = new C1(); C2 class2Val = new C2(); class2Val.class1Val1 = new C1(); class2Val.class1Val2 = new C1(); // Draw memory at this point f1(struct3Val); f2(class2Val); } } }