title: Why do we use heap to store memory?
body: <p>If this sounds like a kindergarden question then forgive me ;) But, in C++ a heap is used for memory allocation since... ever (at least the 80's). Is it the best algorithm for the job, or did we just get stuck with it (as happened with javascript...)? Do all (non embedded) OS's use a heap to store memory?</p>
  
  <p>Edit:
  So, what structures/algorithms <strong>ARE</strong> used. And how is it (if) related to the heap algorithm?</p>
  
  <p>No need to compare with "stack" allocation (it's all over the web), or discuss the C++ semantics - 
  A tl;dr of what a memory heap is today?</p>