[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.13 大きさゼロの配列

GNU C では長さが 0 の配列を使うことができる。 これを構造体の最後の要素として置き、実際には可変長となるオブジェクトの ヘッダとして使うことができる。

 
struct line {
  int length;
  char contents[0];
};

{
  struct line *thisline = (struct line *)
    malloc (sizeof (struct line) + this_length);
  thisline->length = this_length;
}

C の標準では、長さ 0 の配列は許されないため、上記の contents の 長さを 1 にしなければならない。このため、スペースが無駄になったり、 malloc の引数が複雑になったりする。


This document was generated using texi2html 1.78.