Quoting from this site,
Zero-length arrays are allowed in GNU C. They are very useful as the last element of a structure that is really a header for a variable-length object.
Code:
 struct line {
   int length;
   char contents[0];
 };
 struct line *thisline = (struct line *)malloc(sizeof (struct line) + this_length);
 thisline->length = this_length;
I really did not understand what they have meant by this: "last element of a structure that is really a header for a variable-length object". Can someone elaborate on that sentence?
 
     
     
     
    