关于建立链表的一个疑点

关于建立链表的一个疑问
typedef struct node
{
int data;
struct node *next;
}node,*list;

void main()
{
int i;
list *l;
l = (list *)malloc(10 * sizeof(node));
for(i=0;i<10;i++)
{
l[i]->next = NULL;
}
for(i=0;i<10;i++)
{
l[i]->next = l[i+1];
}
}

想一次性建立10个地址连续的链表并连接起来,但在初始化的时候有错,请各位看看

------解决方案--------------------

#include<stdio.h>      //修改

#include<stdlib.h>    //修改


typedef struct node
{
int data;
struct node *next;
}node,*list;

void main()
{
int i;
list l;                      //修改

l = (list)malloc(10 * sizeof(node));    //修改

for(i=0;i<10;i++)
{
l[i].next = NULL;    //修改
}
for(i=0;i<10;i++)
{
l[i].next = &l[i+1];   //修改

}
}



楼上发的有点蛋疼

------解决方案--------------------
5楼正解

typedef struct node
{
    int data;
    struct node *next;
}node,*list;
// 这里给struct node起了个别名node,同时给struct node* 起了个别名list;
// 所以list本身已经是一个指针了