CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

C忘光了,就命!!!!为什么这个小程序调试通过,一执行就会被Windows Kill掉???

楼主SteveYoung(Fuck CCTV to die)2004-12-03 14:54:24 在 C/C++ / C语言 提问

 
  运行环境VC++   6.0   +   Windows   XP   SP2  
   
  ----------  
  #   include   <   stdio.h   >  
  #   include   <   string.h   >  
   
  char   *Encipher(   char   *   );  
   
  void   main()  
  {  
  char   *source   =   NULL;  
  printf("Please   input   a   string   :");  
  scanf("%s",   source);  
  source   =   Encipher(   source   );  
  printf("The   string   has   been   enciphered   to:   \"%s\"",   source   );  
  }  
   
  char   *Encipher(   char   *t   )  
  {  
  unsigned   j   =   0;  
  unsigned   i   =   0;  
  char   mapping[2][26]={"abcdefghijklmnopqrstuvwxyz","ngzqtcobmuhelkpdawxfyivrsj"};  
  char   *temp   =   t;  
  for(   i;   i   <=   strlen(t);   i++   )  
  {  
  for(   j=0;   j   <=   25;   j++   )  
  if(mapping[0][j]   ==   *temp)  
  {  
  *temp   =   mapping[1][j];  
  break;  
  }  
   
          temp++;  
  }  
  return   t;  
  }  
  问题点数:70、回复次数:9Top

1 楼Amour81(玛里奥)回复于 2004-12-03 14:58:36 得分 10

最后加个GETCHAR()语句。  
  别忘记加头文件。Top

2 楼tsingien(Read The F**king Source Code)回复于 2004-12-03 14:59:48 得分 10

char   *source   =   NULL;  
  printf("Please   input   a   string   :");  
  scanf("%s",   source);  
  这样不好吧Top

3 楼SteveYoung(Fuck CCTV to die)回复于 2004-12-03 15:04:36 得分 0

谢谢楼上2位的回答,请问tsingien(Read   The   F**king   Source   Code),如果说这里不好,该怎么改进呢?Top

4 楼goodboy1881(积木)(谁都别拦着我在水源升星)回复于 2004-12-03 15:13:29 得分 10

你的char   *source   没有分配空间,当然要写向下面的代码。  
  char   *source   =   (char*)malloc(sizeof(char)*100);  
  最后要写  
  free(source);Top

5 楼sun428(Born to Win)回复于 2004-12-03 15:40:29 得分 10

末尾要加的是getch()  
  而不是getchar()吧  
   
  头文件是   #include   "conio.h"Top

6 楼rowdy(阿丘)回复于 2004-12-03 15:43:19 得分 10

楼上的没错,你的char   *source   没有分配空间Top

7 楼sun428(Born to Win)回复于 2004-12-03 15:44:52 得分 10

char   *source   没有分配空间  
  一个指针未指向任何实体就被使用,属于”内存盗用”!因为该指针将随意指向内存中某一单元,轻则误取或破坏其他实体的值,重则破坏操作系统的工作。Top

8 楼skfox(sky)回复于 2004-12-03 16:22:43 得分 10

另一个问题  
  char   mapping[2][26]={"abcdefghijklmnopqrstuvwxyz","ngzqtcobmuhelkpdawxfyivrsj"};  
  数了一下,  
  abcdefghijklmnopqrstuvwxyz  
  ngzqtcobmuhelkpdawxfyivrsj  
  都是26个字符,后面还有一个结束符'\0'  
  已经越界了Top

9 楼SteveYoung(Fuck CCTV to die)回复于 2004-12-03 21:07:37 得分 0

谢谢大家!一切都已解决!Top

相关问题

  • c++小程序请教
  • 一个小程序的调试问题
  • JAVA小程序中的setBackground(Color c)
  • JAVA小程序中的setBackground(Color c)
  • 求教一个c小程序。
  • 关于c的小程序,求解!
  • C语言的一个小程序
  • 请大家帮忙调试下这个小程序~!!!!
  • 谁有时间,帮个忙,调试一个小程序!
  • 小程序在VC++中调试出现错误!!!急!

关键词

  • source
  • encipher
  • unsigned
  • printf
  • char
  • include

得分解答快速导航

  • 帖主:SteveYoung
  • Amour81
  • tsingien
  • goodboy1881
  • sun428
  • rowdy
  • sun428
  • skfox

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo