3
初めて(新しい開発環境で)私はvalgrindがmktimeについて不平を言っているのを見ていますが、これがlibcライブラリ、valgrind、または私のコードのバグかどうかはわかりません。私はエラー(下記)から始めます - 原因を説明するのに十分な情報ですか?__mktimeについて不平を言っている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: ???
これは非常に一般的なバグです。 mktimeでtm_isdstの適切な値を判断するには、-1に設定します(mktimeのマニュアルページに記載されています)。 –
または - ここで提案されているように(http://www.ex-parrot.com/~chris/random/initialise.html)、 'memset'tingの代わりに' struct tm dateを使用して構造体をゼロで初期化します= {0}; ' – freitass