C语言 程序跑飞了

C语言 程序跑飞了,第1张

scanf的返回值是你输入的项数,是一个int类型,所以你把bool改成int就可以啦。。。不过你这程序很怪异。。。既然n是个int型,又要求输入一个数,那么yesorno怎么可能等于0。。。好吧,输入字母不算。。。

原因很多啊

1)程序没有结尾或不是循环的程序。

2)nmi管脚没有上拉。

3)在看门狗动作的时候程序会经常跑飞。

4)程序编制不当也会引起程序跑飞。

5)硬件系统有问题。

跑飞指的是程序指针混乱,堆栈被破坏,跑飞算是程序运行问题中较严重的一类,对指针未初始化或未指向值就解引用常会引起跑飞 如: struct AA { int i; char j; } p; 如未p = (AA )malloc(sizeof(struct AA))等之类进行初始化就 使用p->i,j等

1、你好我想问你知道跑飞的意思吗,程序跑飞一般是指PC指针不按照你的程序思路去指向了,比如你退出中断的时候应该回到之前的那个压栈PC处却没有,这样的现象我们认为程序跑飞。

2、对于程序跑飞一般我们采用看门狗的方式来让程序复位,防止程序跑飞造成严重后果。

3、看不到现象不一定是跑飞,不过STC这类片子没有仿真器支持的吧一般,如果是AVR或者PIC或者430用仿真器看看PC就知道了。

4、可以将某个口的输出特征电平,用于检测程序是否跑飞,运行后检测该口的电平是否有差异即可。

5、程序跑飞了是可以在写入的,除非是芯片损坏了,是不是电源或者复位电平等导致芯片挂了,所以你认为是程序跑了一遍就挂掉了。

6、打好基础,搞清楚细节问题,对你很有帮助,比如看门狗如何使用等这类问题,编程谁都会的,外面一大把都是。什么高中毕业,大专生,就连现在本科生都去抢单片机的饭碗,搞不懂。

7、系统的学习,不要只看到片面的东西,学会自己的一套分析问题的方式。

8、打字很累,有时间hi我

跑飞指的是程序指针混乱,堆栈被破坏,跑飞算是程序运行问题中较严重的一类,对指针未初始化或未指向值就解引用常会引起跑飞

如: struct AA

{

int i;

char j;

} p;

如未p = (AA )malloc(sizeof(struct AA))等之类进行初始化就 使用p->i,j等就会使得程序跑飞

stc芯片本身不稳定,抗干扰能力极差!stc单片机不能用于工控。跑飞原因有几个

1 看看有没有堆栈溢出

2程序储存段有没有越界。

3电源电压不稳,加大电源滤波电容加一个5伏稳压二极管

4io口是否受到外界干扰最好加光耦隔离

5如果自动复位,复位引脚不用时接上拉电阻到5伏,同时引脚加个对地电容

6板子地线要接地

以上就是关于C语言 程序跑飞了全部的内容,包括:C语言 程序跑飞了、程序跑飞一般是什么原因造成的、DSP程序跑飞的原因有哪些等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10067456.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存