#include <stdio.h>
#include <stdlib.h>
struct node {
 char *item;
};
int main(void) {
 int i;
 char n[100];
 struct node *a[100];
 a = (struct node*)malloc(sizeof(*a)); /* エラー:左辺値が必要 */
 for (i=0; i<3; i++) {
  fgets(n, 100, stdin); sscanf(n, "%s", a[i]->item);
 }
  printf("%s\n", a[1]->item);
}

まずはこのようなポインタの配列を実現したいのですが、どのように領域を確保すればよいのでしょうか?