3
第一次(在我的新开发环境中),我看到valgrind抱怨mktime,但我不确定这是libc库,valgrind还是我的代码中的错误。我会从错误开始(下面) - 是否有足够的信息来解释原因?valgrind抱怨__mktime - 是我的错吗?
==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: ???
这是一个非常普遍的错误。如果您希望mktime确定tm_isdst的正确值,请将其设置为-1(如mktime手册页中所述)。 – 2012-01-28 17:20:50
或者 - 建议[这里](http://www.ex-parrot.com/~chris/random/initialise.html) - 而不是memset'ting,用struct struct tm date来初始化零结构= {0};' – freitass 2013-05-23 16:08:03