C语言链表的结构指针定义报错非法,求指点。
#include<stdio.h>#include<stdlib.h>
struct list{
int data;
struct list*nextPtr;
};//创建结构体。
//创建链表。
list *createList(void)
{
int num;
list*headPtr,lastPtr,currentPtr;
headPtr=NULL;
lastPtr=NULL;
currentPtr=NULL;
//存储数字,直到出现-1停止。
scanf("%d",&num);
while(num!=-1)
{
currentPtr=malloc(sizeof(struct list));
if(currentPtr!=NULL)
{
(*currentPtr).data=num;
if(headPtr==NULL){
headPtr=currentPtr;
lastPtr=currentPtr;
}
else{
(*lastPtr).nextPtr=currentPtr;
lastPtr=currentPtr;
}
}
scanf("%d",&num);
}
(*lastPtr).nextPtr=NULL;
return headPtr;
}
以上是代码
报错显示我定义的list*headPtr,lastPtr,currentPtr是无效的?????为什么?