これを実現するために次のような構造体を定義する。
struct LIST { struct LIST * next; char body[20]; }; |
この定義で重要なのは、struct LIST * next;
である。通常、構造体
の定義に自分自身を用いてはならないが、この場合はポインタ(つまりアドレス
を入れておくための変数)なのでこの限りではない(アドレスの大きさは予め
分かっているから)。
このようにして用意した next には、もしそのオブジェクトが最後のオブジェクト
ならば次のデータは存在しないので、例えば NULL
を入れておく。
新しいオブジェクトを確保するには常に以下のような関数を呼び出すことで
確保するようにする。
(但し、ここでは簡単のためにデータ本体には配列を使っている。)