> 
> **Possible Duplicates:**  
> 
> [Why are two different concepts both called “heap”?](https://stackoverflow.com/questions/1699057/why-are-two-different-concepts-both-called-heap)  
> 
> [What's the relationship between “a” heap and “the” heap?](https://stackoverflow.com/questions/756861/whats-the-relationship-between-a-heap-and-the-heap) 
> 
> 
> 

In .NET (and Java as far as I know), the area where objects are dynamically allocated is referred to as the managed heap. However, most [documentation](http://www.c-sharpcorner.com/UploadFile/tkagarwal/MemoryManagementInNet11232005064832AM/MemoryManagementInNet.aspx) that describes how the managed heap works depicts it as a linear data structure, such as a linked list or stack.

So, is the managed heap actually a [heap](http://en.wikipedia.org/wiki/Heap_%28data_structure%29), or is it implemented with some other data structure? If it actually does not use a heap data structure, is seems like a significant failure of terminology to overload the meaning of this word.

If it is in fact a heap data structure, what is the value that satisfies the heap property: the size of the allocated memory region?