This is an excellent question. Zero-length arrays, also known as flexible arrays, are used to implement variable-length arrays, primarily in structures. That's a little confusing, so let's look at an ...
Kees Cook has posted a detailed document describing the work to improve safety of flexible-length arrays in the kernel. Converting such codebases to use “modern” language features, like those in C99 ...