第一次(在我的新开发环境中)我看到 valgrind 提示 mktime,但我不确定这是否是 libc 库、valgrind 或我的代码中的错误。我将从错误开始(如下) - 这是否足以解释原因?
==3682== at 0x38ACE9A505: __mktime_internal (in /lib64/libc-2.12.so)
==3682== by 0x4D66F7: ???
==3682== by 0x4D7611: ???
==3682== by 0x4D23CD: ???
==3682== by 0x4D175B: ???
==3682== by 0x38ACE1ECDC: (below main) (in /lib64/libc-2.12.so)
==3682== Uninitialised value was created by a stack allocation
==3682== at 0x4D64BE: ???
==3682==
==3682== Conditional jump or move depends on uninitialised value(s)
==3682== at 0x38ACE9A505: __mktime_internal (in /lib64/libc-2.12.so)
==3682== by 0x4D67DA: ???
==3682== by 0x4D7611: ???
==3682== by 0x4D23CD: ???
==3682== by 0x4D175B: ???
==3682== by 0x38ACE1ECDC: (below main) (in /lib64/libc-2.12.so)
==3682== Uninitialised value was created by a stack allocation
==3682== at 0x4D64BE: ???
最佳答案
对于遇到此问题的任何其他人......
该结构由 strptime 填充,它显然没有填充未使用的结构成员 (dst)...但 mktime 不喜欢这样 :) 所以将它设置为零
关于valgrind 提示 __mktime - 那是我的错吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9037631/