Because even C isn't free from the occasional misfeature slipping into the standard. VLAs come with a lot of caveats (e.g. available stack size being limited and opaque, no sizeof() support, etc).
VLAs were made optional in C11, so it's better not to use them at all for portable code.
VLAs were made optional in C11, so it's better not to use them at all for portable code.