| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 591 人关注过本帖
标题:程序停止响应,是指针使用出问题了的吗?【附代码】
只看楼主 加入收藏
九月痕
Rank: 2
等 级:论坛游民
帖 子:9
专家分:20
注 册:2011-4-16
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
程序停止响应,是指针使用出问题了的吗?【附代码】
程序代码:
void add_book()
/*增加1本新书,读入新书的名称、编号和数量*/
{ FILE *fp;
  book *p,*q;
  p=h_book;
  char book_num[15];
  int number;
  float price;
  printf("       \n请先输入新书编号:");
  scanf("%s",&book_num);
  fflush(stdin);
  while(p!=NULL&&strcmp(p->number,book_num)!=0)
    p=p->next;
  if(strcmp(p->number,book_num)==0)
    { printf("\n\t\t此编号已经存在,请重新输入!\n");
      add_book();
    }
  q=(book *)malloc(sizeof(book));  /*执行到这里时停止工作...*/
  printf("       \n请按顺序输入新书的名称、作者、出版社、出版时间、类别、价格、数量(以空格隔开):");
  scanf("%s%s%s%s%s%f%d",q->name,q->author,q->publish,q->time,q->classes,&q->price,&q->kc);
  strcpy(q->number,book_num);
  q->next=p->next;p->next=q;
  if((fp=fopen("book.dat","ab"))==NULL)
    {  printf("不能建立图书文件,初始化失败!请重新启动系统!\n"); return; }
  /*将新书信息添加到文件中*/
  fwrite(q,sizeof(book),1,fp);
  fclose(fp);
}
搜索更多相关主题的帖子: number color price 
2011-11-22 20:38
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:1 
自己单步调试吧。

我们都在路上。。。。。
2011-11-23 12:15
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:19 
1.能确保p->next最后为NULL吗?
2.  
if(strcmp(p->number,book_num)==0)
    { printf("\n\t\t此编号已经存在,请重新输入!\n");
      add_book();//这样会形成递归,在这里用不是个好方法
    }

★★★★★为人民服务★★★★★
2011-11-23 12:36
九月痕
Rank: 2
等 级:论坛游民
帖 子:9
专家分:20
注 册:2011-4-16
收藏
得分:0 
以下是引用cnfarer在2011-11-23 12:36:38的发言:

1.能确保p->next最后为NULL吗?
2.  
if(strcmp(p->number,book_num)==0)
    { printf("\n\t\t此编号已经存在,请重新输入!\n");
      add_book();//这样会形成递归,在这里用不是个好方法
    }
你好,谢谢你的解答!根据你的提示,摆弄了一中午,又把C语言的链表、内存分配部分好好看了下,现在已经解决啦~
p->next确实没有保证为NULL,判断语句改为了 while(p->next!=NULL&&strcmp(p->number,book_num)!=0) ,又发现其他地方在处理链表的时候也出现了一些问题,又修改了一番......

第二个提醒已经修改成while循环了

谢谢!
同时也谢谢2楼的朋友!

2011-11-23 15:20
御风牧雨
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:47
专家分:110
注 册:2011-3-20
收藏
得分:0 
哈!你这程序看起来很大啊...嗯...楼主是职业的还是业余的程序员?...
2011-11-28 22:46
九月痕
Rank: 2
等 级:论坛游民
帖 子:9
专家分:20
注 册:2011-4-16
收藏
得分:0 
回复 5楼 御风牧雨
唔...俺是学生..写的这个是课程设计...图书管理系统
2011-11-29 11:08
御风牧雨
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:47
专家分:110
注 册:2011-3-20
收藏
得分:0 
回复 6楼 九月痕
哦,原来如此...呵呵!...
2011-11-29 21:56
快速回复:程序停止响应,是指针使用出问题了的吗?【附代码】
数据加载中...
 
   



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

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