加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – sprintf()乱码输出

发布时间:2020-12-16 07:32:30 所属栏目:百科 来源:网络整理
导读:我有以下代码: char buf[255];int ID = 0;double val = 1.234;sprintf(buf,"%d@%.3lf",ID,val);printf("%s",buf); printf()正确打印ID值,但val值只是一些垃圾.你知道导致这个问题的原因吗?我在Win7 32位上使用MSVC 9.甚至更奇怪的是上面的代码在64位机器上
我有以下代码:

char buf[255];
int ID = 0;
double val = 1.234;
sprintf(buf,"%d@%.3lf",ID,val);
printf("%s",buf);

printf()正确打印ID值,但val值只是一些垃圾.你知道导致这个问题的原因吗?我在Win7 32位上使用MSVC 9.甚至更奇怪的是上面的代码在64位机器上正常工作.

在此先感谢您的帮助.

解决方法

在此评论之后:

是的,还有一些额外的代码.这段代码被编译成一个DLL库,实际上我有三个地方,我调用我的问题中发布的代码,只在一个地方输出垃圾,如上所述.

这可能是由于代码中的其他地方出现了一些问题.您可能在某处损坏堆栈/堆并无意中覆盖了您的变量.使用内存检查器检查代码(valgrind(unix),CMemLeak(所有))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读