主题:[讨论]建立单链表并逆序输出有错误,请各位高手帮忙改一下
#include<stdio.h>
#define NULL 0
typedef struct LNode{
int data;
struct LNode *next;
}LNode,*linklist;
linklist creatlist(linklist *L,int n)
{
linklist *p;
int i;
L=(linklist)malloc(sizeof(LNode));
L->next=NULL;
for(i=n;i>0;--i)
{
p=(linklist)malloc(sizeof(LNode));
scanf("%d",&(*p)->data);
p->next=L->next;L->next=p;
}
return L;
}
main()
{
linklist p,L;
int n;
printf("enter the n:");
scanf("%d",&n);
L=creatlist(&L,n);
p=L->next;
while(p)
{
printf("%d",p->data);
p=p->next;
}
getch();
}
我用的是TC,程序不能运行,提示错误为:
错误 shucud~1.c 13: 指针必需在 -> 的左侧在 creatlist 函数中
错误 shucud~1.c 18: 指针必需在 -> 的左侧在 creatlist 函数中
错误 shucud~1.c 18: 指针必需在 -> 的左侧在 creatlist 函数中
错误 shucud~1.c 18: 指针必需在 -> 的左侧在 creatlist 函数中
请各位大哥解释一下原因并改正程序。
#define NULL 0
typedef struct LNode{
int data;
struct LNode *next;
}LNode,*linklist;
linklist creatlist(linklist *L,int n)
{
linklist *p;
int i;
L=(linklist)malloc(sizeof(LNode));
L->next=NULL;
for(i=n;i>0;--i)
{
p=(linklist)malloc(sizeof(LNode));
scanf("%d",&(*p)->data);
p->next=L->next;L->next=p;
}
return L;
}
main()
{
linklist p,L;
int n;
printf("enter the n:");
scanf("%d",&n);
L=creatlist(&L,n);
p=L->next;
while(p)
{
printf("%d",p->data);
p=p->next;
}
getch();
}
我用的是TC,程序不能运行,提示错误为:
错误 shucud~1.c 13: 指针必需在 -> 的左侧在 creatlist 函数中
错误 shucud~1.c 18: 指针必需在 -> 的左侧在 creatlist 函数中
错误 shucud~1.c 18: 指针必需在 -> 的左侧在 creatlist 函数中
错误 shucud~1.c 18: 指针必需在 -> 的左侧在 creatlist 函数中
请各位大哥解释一下原因并改正程序。