这个程序为什么会出现内存错误?
#include<stdio.h>
#include<stdlib.h>
typedef struct sx{
int data;
struct sx *next;}sx;
main(){
int a[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18};
sx *pa1,*pa2,*l,*l1,*l2;
l=(sx*)malloc(sizeof(sx));
int i;
l2=l;
for(i=0;i<18;i++)
{
l1=(sx*)malloc(sizeof(sx));
l1->data=a[i];
l2->next=l1;
l2=l1;
}
l2->next=NULL;
pa1=l->next;
pa2=l->next;
while(pa1->next->next!=NULL)
pa1->next=pa1->next->next,
pa1=pa1->next->next;
pa1->next=NULL;
while(pa2->next!=NULL)
printf("%d\n",pa2->data),
pa2=pa2->next;
system("pause");
}
程序目的是把数组中的奇数项找出做成链表,运行提示内存出错。。请指教。。。