Using and Porting GNU CC - Zero Length

Node: Zero Length Next: Variable Length Prev: Complex Up: C Extensions

Arrays of Length Zero

Zero-length arrays are allowed in GNU C. They are very useful as the last element of a structure which is really a header for a variable-length object:

	struct line {
	  int length;
	  char contents[0];
	};
	
	{
	  struct line *thisline = (struct line *)
	    malloc (sizeof (struct line) + this_length);
	  thisline->length = this_length;
	}

In standard C, you would have to give contents a length of 1, which means either you waste space or complicate the argument to malloc .


Next: Variable Length Up: C Extensions