标题:一个关于while(L)的错误问题。(需要运行调试!)
取消只看楼主
ssl002
Rank: 2
等 级:论坛游民
威 望:2
帖 子:75
专家分:43
注 册:2017-6-13
结帖率:100%
已结贴  问题点数:30 回复次数:5 
一个关于while(L)的错误问题。(需要运行调试!)
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#define OVERFLOW 0
#define OK 1
#define ERROR 0
typedef int Status;
typedef int ElemType;
typedef struct LNode
{
    ElemType data;
    struct LNode *next;
}LNode;//定义结构体

void mune();
int ClearList_L(LNode *L);
Status InitList_L(LNode *L);
Status CreateList_L(LNode *L,int n);//声明函数

Status InitList_L(LNode *L)
{
    L=(LNode*)malloc(sizeof(LNode));
    if(!L) return OVERFLOW;
    L->next=NULL;
    return OK;
}//初始化
Status CreateList_L(LNode *L,int n)
{
    LNode *p;
    int i;
    if(!L) return ERROR;
    if(L->next) ClearList_L(L);
    for(i=n;i>0;--i)
    {
        p=(LNode*)malloc(sizeof(LNode));
        printf("第%d个结点的数据为:\n",i);
        scanf(" %d",&(p->data));
        p->next=L->next;
        L->next=p;
    }
}
//创建
//遍历
//读取第i个元素
//插入
//删除
//求长度
int ClearList_L(LNode *L)
{
    LNode *LNext;
    while(L==NULL)
    {
        printf("链表为空!");
        return 0;
    }
    while((L->next)!=NULL)
    {
        LNext=L->next;
        free(L);
        L=LNext;
        printf("已清空!");
    }
    return 0;
}//清空
//销毁
void mune()
{
    printf("请输入您选择的操作:\nr.创建\nt.遍历\ng.读取指定元素\ni.插入\nd.删除\nl.求长度\nc.清空\nx.退出程序\n");
}
//目录
int main()
{
    int n;
    char opp;
    LNode *L;
    if(!InitList_L(L)) printf("初始化失败!\n");
        else printf("初始化成功!\n");
    while(1)
    {
        mune();
        scanf(" %c",&opp);
        switch(opp)
        {
            case 'r':
                {
                    printf("请输入创建结点个数:\n");
                    scanf(" %d",&n);
                    CreateList_L(L,n);
                    break;
                }
            case 't':break;
            case 'g':break;
            case 'i':break;
            case 'd':break;
            case 'l':break;
            case 'c':ClearList_L(L);break;
            case 'x':break;
            default: printf("请重新输入!\n");
        }
    }
}

这是一个链表操作程序,运行没问题,第一次输入"r"

或者运行"c",一样的结果。
调试也调试不出来,我用VC++6.0和CFree都试过了,不行啊!
先谢谢各位!
感谢!
搜索更多相关主题的帖子: int next printf case break 
2017-10-08 19:11
ssl002
Rank: 2
等 级:论坛游民
威 望:2
帖 子:75
专家分:43
注 册:2017-6-13
得分:0 
回复 楼主 ssl002
没有大神看一下吗!?

[此贴子已经被作者于2017-10-8 19:21编辑过]

2017-10-08 19:16
ssl002
Rank: 2
等 级:论坛游民
威 望:2
帖 子:75
专家分:43
注 册:2017-6-13
得分:0 
回复 3楼 forever74
我看一下啊
2017-10-08 20:31
ssl002
Rank: 2
等 级:论坛游民
威 望:2
帖 子:75
专家分:43
注 册:2017-6-13
得分:0 
回复 4楼 yu965634383
应该有野指针的问题,但你说的问题明白啊,为什么要等于0啊,if()?
2017-10-08 20:45
ssl002
Rank: 2
等 级:论坛游民
威 望:2
帖 子:75
专家分:43
注 册:2017-6-13
得分:0 
回复 5楼 吹水佬
感谢感谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2017-10-08 20:45
ssl002
Rank: 2
等 级:论坛游民
威 望:2
帖 子:75
专家分:43
注 册:2017-6-13
得分:0 
回复 10楼 yu965634383
是这个问题,谢谢!
2017-10-29 15:12



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




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

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