title: C Variable Length Arrays storage duration
body: <p>On <a href="http://en.cppreference.com/w/c/language/storage_duration" rel="noreferrer">this</a> site there is the following paragraph (emphasis mine):</p>
  
  <blockquote>
    <ul>
    <li>automatic storage duration. The storage is allocated when the block in which the object was declared is entered and deallocated when it is exited by any means (goto, return, reaching the end). One exception is the VLAs; their storage is allocated when the declaration is executed, not on block entry, and deallocated <strong>when the declaration goes out of scope, not than when the block is exited (since C99)</strong>. If the block is entered recursively, a new allocation is performed for every recursion level. All function parameters and non-static block-scope objects have this storage duration, as well as compound literals used at block scope.</li>
    </ul>
  </blockquote>
  
  <p>What is the difference between a declaration going out of scope and a block being exited? Can you provide an example?</p>