title: Decoding output from Valgrind
body: <p>I'm trying to understand the output from Valgrind having executed it as follows:</p>
  <pre class="lang-none prettyprint-override"><code>valgrind --leak-check=yes &quot;someprogram&quot;
  </code></pre>
  <p>The output is here:</p>
  <pre class="lang-none prettyprint-override"><code>==30347==
  ==30347== HEAP SUMMARY:
  ==30347==     in use at exit: 126,188 bytes in 2,777 blocks
  ==30347==   total heap usage: 4,562 allocs, 1,785 frees, 974,922 bytes
          allocated
  ==30347==
  ==30347== LEAK SUMMARY:
  ==30347==    definitely lost: 0 bytes in 0 blocks
  ==30347==    indirectly lost: 0 bytes in 0 blocks
  ==30347==      possibly lost: 0 bytes in 0 blocks
  ==30347==    still reachable: 126,188 bytes in 2,777 blocks
  ==30347==         suppressed: 0 bytes in 0 blocks
  ==30347== Reachable blocks (those to which a pointer was found) are
            not shown.
  ==30347== To see them, rerun with: --leak-check=full --show-reachable=yes
  ==30347==
  ==30347== For counts of detected and suppressed errors, rerun with: -v
  ==30347== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 2 from 2)
  </code></pre>
  <p>According to the output, there are no lost bytes, but there seems to be <em>still reachable</em> blocks. So do I have a memory leak?</p>