C语言里程序编译无误但运行会弹出程序已停止运行是为什么

 我来答
Petite7
2016-06-14 · TA获得超过1975个赞
知道小有建树答主
回答量:934
采纳率:66%
帮助的人:664万
展开全部

造成程序停止运行弹框出错的可能原因如下:

  1. 内存溢出

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

    造成内存溢出的原因可能有:

    1>栈区溢出,例如在main函数内开辟的数组空间过大,一般机器的栈区限制在8MB左右,如果开辟的数组大小超过限制,程序就会崩溃。通常的解决方法是申请堆内存,即将较大的数组作为全局变量开在main函数之外。

    2>错误地址访问,常见的非法访问包括指针漂移,数组越界等,初学者也经常出现类似scanf函数没加区地址符号&的情况导致在读取变量的时候因非法访问造成的溢出。

    3>数据类型不符,问题和第二个类似,例如在声明变量时声明为int在输出变量时却用了%lld,就会造成因数据类型不符而导致的溢出。

  2. 编译器错误

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


匿名用户
2016-06-08
展开全部
#includevoidsort(floata[],intn)//这两行怎么可以并拢而且头文件也没加两个main两个头文件函数名也一样好乱啊这代码把下一个#include前的代码全删掉
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
弑绯
2016-06-08 · TA获得超过2500个赞
知道小有建树答主
回答量:893
采纳率:75%
帮助的人:717万
展开全部
那就说明程序有问题,应该再内存处理方面有越界
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rouchie
推荐于2017-11-22 · 超过16用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:34.3万
展开全部
截图看看,
更多追问追答
追问

追答
程序再截图看看
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式