为什么C语言运行到一半就会弹出一个error?

   更新日期:2024.05.17

C语言程序运行出现exe停止工作的原因是因为内存溢出和编译器错误。

第一种:内存溢出

内存溢出(out of memory)通俗理解就是内存不够,程序所需要的内存远远超出了主机内安装的内存所承受大小,就叫内存溢出。系统会提示内存溢出,有时候会自动关闭软件,重启电脑或者软件后释放掉一部分内存又可以正常运行该软件。

第二种:编译器错误

部分编译器由于所使用的标准不同(例如在一台机器上使用的可能是C99标准,而另一台机器上使用的是C11标准),或是因为编译器链接库的损坏,在少数情况下也可能导致程序出现不限于崩溃退出的异常错误,通常解决方法是到编译器官方网站下载最新版的IDE安装。

举例说明:

1、除以零。

2、数组越界:int a[3]; a[10000000]=10。

3、指针越界:int * p; p=(int *)malloc(5 * sizeof(int)); *(p+1000000)=10。

4、使用已经释放的空间:int * p; p=(int *)malloc(5 * sizeof(int));free(p); *p=10。

5、数组开得太大,超出了栈的范围,造成栈溢出:int a[100000000],没有开辟内存 List L=(List)malloc(sizeof(struct LNode))。runtime  error (运行时错误)就是程序运行到一半,程序就崩溃了。

扩展资料:

C特有特点:

1、C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。

2、C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。

3、不同的变量类型可以用结构体(struct)组合在一起。

4、只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。

5、部份的变量类型可以转换,例如整型和字符型变量。

6、通过指针(pointer),C语言可以容易的对存储器进行低级控制。

7、预编译处理(preprocessor)让C语言的编译更具有弹性。

参考资料:C语言-百度百科



  • 17697621759 :C语言里程序编译无误但运行会弹出程序已停止运行是为什么
    何枯叔3475 :答:编译器错误 部分编译器由于所使用的标准不同(例如在一台机器上使用的可能是C99标准,而另一台机器上使用的是C11标准),或是因为编译器链接库的损坏,在少数情况下也可能导致程序出现不限于崩溃退出的异常错误,通常解决方法是到编译器官方网站下载最新版的IDE安装。
  • 17697621759 :新手学C问题:为什么我的C语言程序老是闪退?
    何枯叔3475 :答:system("pause");会调用系统的pause函数,提示并实现按任意键退出程序效果。如果是已经编译好的C语言程序,可以通过开始->运行,键入cmd后回车。在打开的命令行窗口,将可执行文件拖动到窗口上,再回车即可运行该程序,在此窗口不会出现闪退,从而观察运行结果。由于该问题仅在windows平台出现,所以以上介绍...
  • 17697621759 :c语言代码执行到一半终止?
    何枯叔3475 :答:大概问题,我已经知道了,所谓的执行到一半就终止,是因为数组越界了,而且编译器不会报警。比如,在你这个程序里,我输出50-200,他永远只会提示你有21个,因为你输出之前,还需要把这个偶数存放到一维数组a中,然而一维数组只能存放20个数,50-200中间有76个偶数,到了第20个偶数的时候,数组就已经...
  • 17697621759 :C语言--程序运行时弹出了这个是什么意思?怎么解决?
    何枯叔3475 :答:可能你在操作文件时候有错误。一般需要判断打开的文件是否为null,才能继续进行fscanf的操作
  • 17697621759 :c语言弹出窗口应用程序错误
    何枯叔3475 :答:1.木马病毒造成常用病毒捆绑应用程序和系统文件,然后安全杀毒软件把有木马病毒应用程序和系统文件查杀导致。2.应用程序组件丢失,应用程序完整的运行需要一些系统文件或者某些ll文件支持的,如果应用程序组件不完整也会导致的。3.系统文件损坏或丢失,盗版系统或Ghost版本系统,很容易出现该问题。4.操作系统自身...
  • 17697621759 :我看见有些c语言的代码运行后会弹出另外的窗口(不是运行的exe程序),什...
    何枯叔3475 :答:windows系统提供了API可以弹出别的窗口 比如对话框dialog系列API函数 或者messagebox函数
  • 17697621759 :C语言程序一运行就崩溃是什么情况
    何枯叔3475 :答:这种情况叫做 runtime error (运行时错误)。在 Windows 7 上这样提示:在 Windows XP 上这样提示:runtime error (运行时错误)就是程序运行到一半,程序就崩溃了。比如说:①除以零 ②数组越界:int a[3]; a[10000000]=10;③指针越界:int * p; p=(int *)malloc(5 * sizeof(int));...
  • 17697621759 :我在运行c语言时弹出下面的方框,是怎么回事?
    何枯叔3475 :答:从文件读取字符时;放入的文件描述符参数为空;int __cdecl fscanf (FILE *stream,const char *format,...);这个是函数原型; stream 参数为空;按照你的描述你是想从控制台或内存缓冲中读取; 所以应该用 scanf 或者 sscanf ; 不应该用fscanf 这个函数的作用是从文件中读取固定格式的字符;...
  • 17697621759 :C语言 程序运行到一半告诉我出现一个问题导致程序停止工作
    何枯叔3475 :答:程序中根本没有这几句的内容,因而不会出错。有了语句,就不能省略了,就出错了。就是这样简单。另外,你的程序必须当做C++程序编译,否则通不过。C不允许在有实质语句之后定义变量,变量说明要全部放到相应段的最前面,也不支持//注释。我是用DEVC++编译成功的,用WINTC编译失败。
  • 17697621759 :C语言运行问题:编好的程序,为何刚开始可以运行,后来运行几次后就会发生...
    何枯叔3475 :答:是否存在内存泄露?若是,则前几次运行正常,但运行几次后就会出错了。
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网