type name[10]
is Fixed array declaration.
type name[exp]
is Variable-length array.
Allocation is performed every time you encounter this declaration (in block) is from C99 variable-length arrays. Size is fixed after it is once formed.
So, the behavior of the case, such as access to outside the bounds of the array in code like the example is undefined.