标题:新手求教c语言链表程序!编译通过但是运行不出来!谢谢啦
只看楼主
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
以下是引用zhu224039在2012-9-9 13:06:35的发言:

  你看看是不是 非法内存操作了    检查下自己的变量是否初始化后 才调用的

有条件的话 弄个GDB 的工具  跟踪下程序的运行

楼下的 我先占的座哟,就不劳烦了,我来解决

你解决了也不会以身相许吧

授人以渔,不授人以鱼。
2012-09-09 14:11
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
得分:0 
struct person *creat(void)   //录入信息,生成链表的函数//
  {
    head=NULL;
    struct person *p,*q;
    int flag=1,n=0;
    while(flag==1)
    {  p=(struct person *)malloc(LEN);
       n++;
       printf("请输入成员编号:");
       scanf("%s",p->num);
       printf("请输入成员姓名:");
       scanf("%s",p->name);
       printf("请输入成员年龄:");
       scanf("%s",p->age);
       printf("请输入成员电话:");
       scanf("%s",p->tele);
       printf("请输入成员地址:");
       scanf("%s",p->addr);
       printf("请输入成员邮箱:");
       scanf("%s",p->email);
          if(n==1)
          q=head=p;
          else                ---------------------------------------》  这个else  就莫名奇妙了     不要了把   n 变量也不用了,  你这个函数就办一件事情  开辟节点   初始化链表头数据
          {q->next=p;
          q=p;}
     printf("继续录入输入1,否则输入0:");         -------------------------------->  这个就不要了把  反正你的flag  什么作用都木有
    scanf("%d",&flag);
    }
   return(head); ---------------------------------------------------------------------》  这个return 语句就算了,给全局变量赋值,不需要的 ,再说 你这个函数的返回值也没有被用到  无所谓的  
  }

我要成为嘿嘿的黑客,替天行道
2012-09-09 14:11
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
得分:0 
回复 11楼 TonyDeng
好把 听版主的,我现实点

我要成为嘿嘿的黑客,替天行道
2012-09-09 14:12
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
你真有那么听话?

授人以渔,不授人以鱼。
2012-09-09 14:16
jokerzhou
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-9-9
得分:0 
回复 10楼 zhu224039
木有抄书啊大哥,我看了书的。我是把书上的看懂然后在自己编。但是关于非法内存的问题我搞不懂就是。还有creat函数最后已经返回了头指针,用insert也是k=insert(k),也就是传进去的是头指针。
文件什么的没怎么看,也没怎么写。。。。。。
2012-09-09 14:42
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
得分:0 
  自己去看看 形参和实参   变量的作用域  

你那K =NILL  的  你传给函数的是空指针,也就是函数 没有处理的数据   肯定是非法读其他的内存了塞

我要成为嘿嘿的黑客,替天行道
2012-09-09 14:49
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
得分:0 
自己去看书塞  姐姐,小弟不和你绕了

我要成为嘿嘿的黑客,替天行道
2012-09-09 14:50
jokerzhou
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-9-9
得分:0 
回复 17楼 zhu224039
好的 不过我应该比你小吧。。。。。。。

阿里嘎多果赞以马斯~
  
真心感谢~
2012-09-09 14:53



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




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

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