title: Why are the terms "automatic" and "dynamic" preferred over the terms "stack" and "heap" in C++ memory  management?
body: <p>Related to a lot of questions and answers on SO, I've learned that it's better to refer to objects whose lifetime is managed as residing in automatic storage rather than the stack. </p>
  
  <p>Also, dynamically allocated objects shouldn't be referred to as residing on the heap, but in dynamic storage.</p>
  
  <p>I get that there is automatic, dynamic and static storage, but never really understood the difference between automatic-stack and dynamic-heap. Why are the former preferred?</p>
  
  <p><strong>I'm not asking what stack/heap mean or how memory management works. I'm asking why the terms automatic/dynamic storage are preferred over the terms stack/heap.</strong></p>