>168
for (unsigned ic = 0; ic < sizeof(a) / sizeof(* a); ++ic)
a[ic] = (struct node*)malloc(sizeof(*a));
or (i=0; i<3; i++) {
fgets(n, 100, stdin); sscanf(n, "%s", a[i]->item);
}
for (i=0; i<3; i++) {
printf("%s\n", a[i]->item);
}

malloc以下をこのようにしてコンパイルできるようにはなったのですが、
a[0]->item 〜 a[2]->item の区別がなく更新されてしまういます。
a[0].item のように*を使うことはできないのでしょうか?