标题:C语言链表的结构指针定义报错非法,求指点。
只看楼主
juliawen
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2017-11-23
结帖率:0
 问题点数:0 回复次数:2 
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是无效的?????为什么?
搜索更多相关主题的帖子: 链表 报错 list num NULL 
2018-03-08 13:45
lanke711
Rank: 9Rank: 9Rank: 9
来 自:流浪在天国之路
等 级:蜘蛛侠
威 望:7
帖 子:317
专家分:1437
注 册:2015-7-16
得分:0 
list*headPtr,lastPtr,currentPtr;
list是结构体名称。
看不清楚?那么请分开写:
list* headPtr;//结构体list的指针变量
list lastPtr;//这结构体list变量不是指针变量
list currentPtr;//这结构体list变量不是指针变量

这样比较清楚了吧?






普通人之所以普通,是因为他们普遍有一个通病,那就是认为自己永远普通。
千夫所指,我亦坚持。就算被所有人误解,我也照样守护这一切。
我们总是觉得,这些灵魂的表情,傲慢自大,目中无人,其实,真正目中无人的是我们。它们傲慢的不过是表情,而我们傲慢的却是行为!
记得,是为了忘记!
只要想着有那么一天,我就能忍受现在的每一天!
灾难并不可怕,可怕的是心中没有了希望。
你以为我在天堂,其实我正在路上。
当你觉得自己走不到终点的时候,请不要放弃。或许你的对手也是这种感觉。
2018-03-08 14:07
juliawen
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2017-11-23
得分:0 
回复 2楼 lanke711
感谢您不吝赐教
2018-03-13 19:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-485095-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015403 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved