title: Why is free() not allowed in garbage-collected languages?
body: <p>I was reading the <a href="http://en.wikipedia.org/wiki/C_Sharp_%28programming_language%29" rel="noreferrer">C#</a> entry on Wikipedia, and came across:</p>
  
  <blockquote>
    <p>Managed memory cannot be explicitly freed; instead, it is automatically garbage collected. </p>
  </blockquote>
  
  <p>Why is it that in languages with automatic memory management, manual management isn't even <em>allowed</em>? I can see that in most cases it wouldn't be necessary, but wouldn't it come in handy where you are tight on memory and don't want to rely on the GC being smart? </p>