This might be a dupe. I did not find enough information on this.
I was discussing memory allocation for collections in .Net. Where is the memory for elements allocated in a collection?
List<int> myList = new List<int>();
The variable myList is allocated on stack and it references the List object created on heap.
The question is when int elements are added to the myList, where would they be created ?
Can anyone point the right direction?
The elements will be created on the heap. The only thing that lives on the stack is the pointer (reference) to the list (List<>
is a reference type)
The elements will also reside in the heap (in an array, that's how List works internally).
In principle, only local variables and arguments are be allocated on the stack and everything else goes on the heap (unless you use rare things such as stackalloc
, but you don't need to worry about that)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With