When your applications starts up, the Garbage Collector (GC) allocates some virtual memory to use as a managed heap It creates a pointer to the next available free space in the managed heap, which defaults to point to the beginning of the (empty) heap.
When you use the new operator to create a new reference-typed object, the Garbage Collector allocates space on the managed heap for your object as follows: