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 ...
There are many possible programmer mistakes that are not caught by the minimal checks specified by the C language; among those is passing an array of the wrong size to a function. A recent attempt to ...
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 ...