本帖最后由 luobeihai 于 2022-12-12 22:40 编辑
你这个代码问题也太多了吧。
1、你想格式化时间输出,小于10的时候,前面你想补0,这样好看。那你可以用格式 %02d控制格式化输出啊。
- sprintf (time_display_hour,"%02d",calendar.hour);
- sprintf (time_display_min,"%02d",calendar.min);
- sprintf (time_display_sec,"%02d",calendar.sec);
这样子不就少了很多无用的代码了么。
2、你定义的 time_display_hour[2],time_display_min[2],time_display_sec[2]; 这几个局部变量,都是2字节的。但是你的 calendar.hour/min/sec 这个结构体的成员变量,他们的范围是多少。很明显不可能只有2字节(就算是char型,最大也可能转换成3字节字符串),这样转换之后输出的字符串就不止2字节了。而你就这样存储到2个字节的变量中,肯定内存越界了啊。你可以把那几个时分秒的数组定义大一些。
|