add proper size check
handle enums
fix rosarr_n macro

 Allows to allocate a variable sized array on the stack (with a length-prefix).
This uses a GNU C extension called Statement Expression, so is not 100%
portable.