I would like to know how a variable length array is managed (what extra variables or data structures are kept on the stack in order to have variable length arrays).
Thanks a lot.
It's just a dynamically sized array (implementation-dependent, but most commonly on the stack). It's pretty much like alloca in the old days, with the exception that sizeof will return the actual size of the array, which implies that the size of the array must also be stored somewhere (implementation-dependent as well, but probably on the stack too).
alloca() array after it had been created, but sizeof works on VLAs (so if you do call sizeof on the array, that size must be kept somewhere).alternatively you could use some containers, e.g. ArrayList in java or vector in c/c++