/*
    http://t...content-available-to-author-only...h.net/test/read.cgi/tech/1357748713/423
    423 名前：デフォルトの名無しさん [sage]： 2013/01/28(月) 15:01:31.14
    [1] 授業単元：プログラミング実習
    [3] 環境
      [3.1] OS： Linux
      [3.2] コンパイラ名とバージョン： gcc
      [3.3] 言語： C
    [4] 期限： 1月30日
    [5] その他の制限： (どこまで習っているか、標準ライブラリは使ってはいけない等々)
    ・線形リストを用いてデータ

    Idがうまく表示できなくて困ってます。
    よろしくお願いします
 */
#include <stdio.h>
#include <stdlib.h>

#define D_N     3

typedef struct _DATA
{
  int Id;
  struct _DATA *pNext;
} DATA;

int main ()
{
  DATA *root = NULL, *p, **pp;
  int i;

  // set
  pp = &root;
  for (i = 0; i < D_N; i++)
    {
      if (NULL == (*pp = (DATA *) malloc (sizeof (DATA))))
        {
          exit (1);
        }
      (*pp)->Id = i;
      (*pp)->pNext = NULL;
      pp = &((*pp)->pNext);
    }
  // print
  for (p = root; p; p = p->pNext)
    {
      printf ("%d ", p->Id);
    }
  printf ("\n");
  // end
  for (p = root; p; p = root)
    {
      root = p->pNext;
      free (p);
    }
  return 0;
}
