导航:网站首页 >

我运行的C语言程序挂起了,应该怎么办?

时间:2017-11-14

相关问题:

匿名网友:

当你运行一个程序时会有多种原因使它挂起,这些原因可以分为以下4种基本类型:

(1)程序中有死循环;

(2)程序运行的时间比所期望的长;

(3)程序在等待某些输入信息,并且直到输入正确后才会继续运行;

(4)程序设计的目的就是为了延迟一段时间,或者暂停执行。

在讨论了因未知原因而挂起的程序的调试技巧后,将逐个分析上述的每种情况。

调试那些因未知原因而挂起的程序是非常困难的。你可能花费了很长的时间编写一个程序,并努力确保每条代码都准确无误,你也可能只是在一个原来运行良好的程序上作了一个很小的修改,然而,当你运行程序时屏幕上却什么也没有显示。如果你能得到一个错误的结果,或者部分结果,你也许知道应该作些什么修改,而一个空白的屏幕实在令人沮丧,你根本不知道错在哪里。

在开始调试这样一个程序时,你应该先检查一下程序结构,然后再按执行顺序依次查看程序的各个部分,看看它们是否能正确运行。例如,如果主程序只包含3个函数调用——A()、B()和C(),那么在调试时,你可以先检查函数A()是否把控制权返回给了主程序。为此,你可以在调用函数A()的语句后面加上exit()命令,也可以用注释符把对函数B()和C()的调用括起来,然后重新编译并运行这个程序。

注意:通过调试程序(debugger)也可以做到这一点,然而上述方法是一种很传统的调试方法。调试程序是一个程序,它的作用是让程序员能够观察程序的运行情况、程序的当前运行行号、变量的值,等等。

此时你将看到函数A()是否将控制权返回给了主程序——如果该程序运行并退出,你可以判断是程序的其它部分使程序挂起。你可以用这种方法测试程序的每一部分,直到发现使程序挂起的那一部分,然后集中精力修改相应的函数。

有时,情况会更复杂一些。例如,使程序挂起的函数本身是完全正常的,问题可能出在该函数从别的地方得到了一些错误的数据。这时,你就要检查该函数所接受的所有的值,并找出是哪些值导致了错误操作。

技巧:监视函数是调试程序的出色功能之一。

分析下面这个简单的例子将帮助你掌握这种技巧的使用方法:

#include

#include

/*

* Declare the functions that the main function is using

*/

int A(), B(int), C(int, int);

/*

* The main program

*/

int A(), B(), C(); /*These are functions in some other

module * /

int main()

{

int v1, v2, v3;

v1 = A();

v2 = B(v1);

v3 = C(v1, v2);

printf (The Result is %d. \n , v3);

return(0) ;

}

你可以在调用函数A()的语句后输出变量v1的值,以确认它是否在函数B()所能接受的值的范围之内,因为即使是函数B()使程序挂起,它本身并不一定就有错,而可能是因为函数A()给了函数B()一个并非它所期望的值。

现在,已经分析了调试“挂起”的程序的基本方法,下面来看看一些使程序挂起的常见错误。

一、死循环

当你的程序出......余下全文>>

大家还关注:

问题推荐

为什么c语言写程序要挂起,我运行的C语言程序挂起了,应该怎么办?相关推荐

  1. c语言编程偏差及均方差,C语言写的方差调试成功却运行出错

    C语言写的方差调试成功却运行出错0 #include #include main() { float ve[20]; printf("小于20个数,可求方差/n"); float ...

  2. 【Android 逆向】Android 逆向通用工具开发 ( Windows 平台运行的控制台应用程序类型 | 编译 Windows 平台运行的 Android 逆向程序 )

    文章目录 一.Windows 平台运行的控制台应用程序类型 二.编译 Windows 平台运行的 Android 逆向程序 一.Windows 平台运行的控制台应用程序类型 hacktool 工程的类 ...

  3. c++ 小游戏_C/C++编程笔记:C语言写推箱子小游戏,大一学习C语言练手项目

    C语言,作为大多数人的第一门编程语言,重要性不言而喻,很多编程习惯,逻辑方式在此时就已经形成了.这个是我在大一学习 C语言 后写的推箱子小游戏,自己的逻辑能力得到了提升,在这里同大家分享这个推箱子小游 ...

  4. c语言写贪吃蛇什么水平_细致的C语言写贪吃蛇教程+详细思路-适合新手附源码...

    #史上最详细的C语言贪吃蛇教程 #前言 在有用C写贪吃蛇的一个想法之后,上网查了几个教程,觉得不是很能看懂.恩...或者说不是一下子就能看出来思路+具体怎么实现.所以,我花了早自习的时间想了想如何用最 ...

  5. 可运行的C语言程序的拓展名,可运行的c语言程序的扩展名为什么?

    可运行的c语言程序的扩展名为".exe".c语言程序经过"编译程序"编译之后,生成一个后缀为".obj"的二进制文件:然后由"连接 ...

  6. 我的python程序_我试着运行我的python程序,但当我运行它时什么也没有发生

    我在运行我用python编写的交互式小故事时遇到了问题.我总是遇到一些非ASCII错误,或者是一些不允许我运行程序的错误.在 如果你想试试这个程序:Program 我的代码是:#Programmer: ...

  7. 请用Python语言写一个巨潮资讯网批量下载PDF的程序

    下面是一个使用 Python 的简单程序,可以批量下载巨潮资讯网上的 PDF 文件: import requests import os# 巨潮资讯网 PDF 文件的 URL 前缀 url_prefi ...

  8. 用c语言写的烟花在那上面运行,C语言烟花程序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #define PI 3.1415926 main() { int gdriver=DETECT,g ...

  9. 用哪种语言写的应用漏洞最严重?六大主流语言代码漏洞分析报告出炉

    来源:机器之心 本文约1600字,建议阅读5分钟 静态代码分析安全公司 Veracode 近日发布了一份应用程序分析报告,结果发现比起 JavaScript 和 Python 等语言,C++ 和 PH ...

最新文章

  1. powerdesigner 同步mysql 报错_PowerDesigner实用技巧小结 及 导出word,想字段顺序跟模型中一致,如何设置...
  2. 字节跳动教育业务怎么样_[财经]字节跳动教育品牌叫什么名字?大力教育怎么样? - 南方财富网...
  3. python装饰器类-python_类装饰器
  4. NOIP2018 退役记
  5. 牛客网NC112--进制转换
  6. kafka依赖zookeeper原因解析及应用场景
  7. python空列表添加_Python列表的简单操作
  8. Java(TM) platform SE binary 占用cpu过高
  9. Storm案例:统计单词个数
  10. 欧姆定律基本知识(笔记)
  11. 达内2018年最新前端
  12. 万测试验机软件,万测TestStar®新秀®100kN微机控制电子万能试验机
  13. [转] PHP:自己动手制作伪原创程序
  14. C++中引用变量的探究
  15. Linux版Flash亮相,但64位版需时间
  16. ejb2.0详细开发过程
  17. 接口返回本站点必须要开启JavaScript才能运行的解决方案
  18. 使用Apache poi生成excel并绘制折线统计图,扇形统计图
  19. 50个表单功能,验证,安全和自定义化的jQuery插件
  20. JIRA Service Desk获得 ITIL 认证

热门文章

  1. 用ProFTPD构建FTP服务器
  2. 全网最深刻的理解音频转码swr_convert(2019/10/29已补充修正)
  3. windows下安装nodejs、webpack及打包步骤
  4. h.265编码库x265实例
  5. YOLOX——Win10下训练自定义VOC数据集
  6. OpenCV图像处理——深度学习样本制造
  7. webgl坐标转换_WebGL 坐标系统
  8. 小米 android 刷4.0,小米如何刷MIUI4.0系统教程
  9. mysql 导出函数_mysql导出存储过程或函数
  10. 初学者学习Java的几大技巧