打印

sprintf 和 sscanf 使用中容易死机

[复制链接]
5344|27
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
autuy123|  楼主 | 2010-7-12 16:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
sprintf 和 sscanf
在程序中使用,很容易死机!

是不是这些文件不可以用呢?
沙发
mohanwei| | 2010-7-12 17:05 | 只看该作者
你是怎么用的?

使用特权

评论回复
板凳
autuy123|  楼主 | 2010-7-12 17:23 | 只看该作者
sprintf ((char *)ascBuff, "%.3f", data)

sscanf((char*)ascBuff,"%f",  &data);

使用特权

评论回复
地板
香水城| | 2010-7-12 17:33 | 只看该作者
缓冲区ascBuff是否太小了?

使用特权

评论回复
5
autuy123|  楼主 | 2010-7-12 17:35 | 只看该作者
30     长度

一般建议多少呢!

使用特权

评论回复
6
autuy123|  楼主 | 2010-7-12 17:36 | 只看该作者
ascBuff[30]

使用特权

评论回复
7
香水城| | 2010-7-12 17:36 | 只看该作者
你看看手册吧,我也不知道。

使用特权

评论回复
8
autuy123|  楼主 | 2010-7-12 17:51 | 只看该作者
哪里有手册呀!

呵呵   

在MDK 中也没有说明

使用特权

评论回复
9
香水城| | 2010-7-12 17:56 | 只看该作者
哪里有手册呀!

呵呵   

在MDK 中也没有说明
autuy123 发表于 2010-7-12 17:51


那就自己试验一下吧,:P

使用特权

评论回复
10
autuy123|  楼主 | 2010-7-12 18:14 | 只看该作者

使用特权

评论回复
11
hgjinwei| | 2010-7-12 21:20 | 只看该作者
堆栈有多少?貌似那几个函数嵌套很深啊。

使用特权

评论回复
12
autuy123|  楼主 | 2010-7-12 21:34 | 只看该作者
是呀,我把启动文件中的堆栈已经修改成
Stack_Size      EQU     0x00000800  
以前的是
Stack_Size      EQU     0x00000200

我在测试一下, 希望是这个低级问题!!

呵呵

使用特权

评论回复
13
astudent| | 2010-7-12 21:58 | 只看该作者
关注

使用特权

评论回复
14
linqing171| | 2010-7-12 22:02 | 只看该作者
这两个函数使用了变参,变参压栈的东西太多。
你的data声明的时候是什么类型?

使用特权

评论回复
15
autuy123|  楼主 | 2010-7-12 22:35 | 只看该作者
data 是FLOAT 的
呵呵
现在把堆栈 放到 2K 了
好了
明天就可以结贴了

使用特权

评论回复
16
mohanwei| | 2010-7-13 08:37 | 只看该作者
你不会是在中断和主函数里都用了吧?

使用特权

评论回复
17
wangzk| | 2010-7-13 09:14 | 只看该作者
我也是啊  还不如自己写的函数好使

使用特权

评论回复
18
autuy123|  楼主 | 2010-7-13 10:49 | 只看该作者
没有在中断函数中调用这两个函数

自己写的没有调用,库中的功能强大 ,库中的也方便,想怎么用就怎么用

呵呵

使用特权

评论回复
19
icecut| | 2010-7-13 13:24 | 只看该作者
呵呵.

微软升级了这2个函数sprintf_s,就是因为安全问题.你还是好好考虑缓冲区大小

使用特权

评论回复
20
autuy123|  楼主 | 2010-7-13 14:24 | 只看该作者
这个我就不清楚了,从目前上看是没哟什么问题,但是这个缓冲区到底该是多少,我也不知道从哪里去查,
可以给个参考吗!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

210

帖子

0

粉丝