鱼C论坛

 找回密码
 立即注册
查看: 3408|回复: 3

程序运行发生崩溃,求解释,求调试!

[复制链接]
发表于 2011-9-17 13:26:13 | 显示全部楼层 |阅读模式
30鱼币
本帖最后由 cqy55555 于 2011-9-17 13:28 编辑

有两个纠结了我好久的问题,自己实在解决不了。问身边同学吧,和我一样都是菜鸟说不明白。问学校老师吧,老师也没多少货,还随便找个理由忽悠我。有时候真有一种想甩鼠标砸电脑的冲动·······
现在此悬赏求助于大虾们,谁能解释并解决其中一个问题便悬赏30鱼币。问题如下:

一个小程序在VC环境下调试运行没有任何问题,但生成的Release版本后运行发生崩溃,前几天已经发帖求助,但由于当时附件传不了,没有得到满意结果。今将程序源码放在下面;

还有就是一个简单的窗口程序,在响应字符消息时会异常终止,问题详细情况已经在附件中说明。
还望大侠们能抽出你们一点宝贵的时间帮我看一下。拜谢········




定时关机程序及源码.zip

96.47 KB, 下载次数: 13

简单窗口程序及源码.zip

70.3 KB, 下载次数: 3

最佳答案

查看完整内容

两题好像*都是数组溢出 *:不敢保证我说的对,因为解决是解决了但理论却不怎麽通 窗口程序: 这我不是很确定,但是实验的解果似乎是如此 在"what you input is:%d"处, TCHAR str[10]只能存9个字(最後要有个'\0') 给str数组空间加大一点,程序就不再崩溃了.* *:说是如此,但是what you input is:** 看起来应该最少有19字节, (不算輸入,但有加上'\0') 但我str只加到13字节就不再崩溃了...这我也纠结了. 定时关机: 这 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-17 13:26:14 | 显示全部楼层
两题好像*都是数组溢出
*:不敢保证我说的对,因为解决是解决了但理论却不怎麽通

窗口程序:
这我不是很确定,但是实验的解果似乎是如此
在"what you input is:%d"处,
TCHAR str[10]只能存9个字(最後要有个'\0')
给str数组空间加大一点,程序就不再崩溃了.*

*:说是如此,但是what you input is:** 看起来应该最少有19字节,
(不算輸入,但有加上'\0')
但我str只加到13字节就不再崩溃了...这我也纠结了.

定时关机:
这个绝对是数组溢出了,"谢谢您,你确定将于%d分钟后关机吗?"
这里产生的字串长度是不一定的,我把str6加大,
输入关机时间短一点,像是1分钟,没事
大一点来个1200分钟,崩溃了,
回头把str6再加大,1200分钟又没事了

如果一个中文字2byte,全形字也算2byte,那麽讯息字串不考虑输入数字,加上'\0'应该是
32byte,可我最小可以只提供25byte,这个时候输入2位数的分钟(像是0,1,2..到99)
也不会崩溃,还是纠结阿....

总之看起来是数组溢出就是了,不过我还是很希望学学字节怎麽算,
希望了解的人能跟帖教学一下.

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2011-9-18 17:55:02 | 显示全部楼层
本帖最后由 cqy55555 于 2011-9-18 18:09 编辑

朋友你这么一说,我就恍然大悟了,自己平时编程时好像都没大注意数组越界的问题。

还有我发现数组越界并不一定会引发程序异常终止,因为我将那个窗口程序中响应

字符消息的str数组只给了1个字节然后拷到到其他的窗口程序中却可以正常运行,这是

是否意味着数组越界会不会崩溃程序还要看越界的部分有没有侵犯一些“重要的内容”呢。

还有后面的程序数组越界了,Release版程序运行出问题而Debug版程序却可以正常运行,

这VC编译器也太坑爹了!

以后真得小心,要不然碰到类似的问题又得纠结半天。

最后非常感谢楼上的帮助

补充的问一下:后面那个程序当str6为大小30,程序运行输入时间小于10时,却引发了整个程序入口主函数

中的MessageBox运行了,有点摸不着头脑的感觉





想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2011-9-18 19:52:27 | 显示全部楼层
>>当str6为大小30,程序运行输入时间小于10时,却引发了整个程序入口主函数中的MessageBox运行了
>>是否意味着数组越界会不会崩溃程序还要看越界的部分有没有侵犯一些“重要的内容”呢。
应该是吧,听一些教编程的老师说过,有的时候数组越界时程序的运行结果是不可预测的.
这程序在我这边就没有入口主函数的MessageBox跳出的现象.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 09:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表