valgrind 提示 __mktime - 那是我的错吗?

标签 valgrind libc mktime

第一次(在我的新开发环境中)我看到 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/

相关文章:

c++ - 如何在没有 valgrind 错误的情况下释放列表中间已删除的节点?

c - strcmp 无法正确比较字符串

c++ - mktime 仅处理 Clang 上的闰年?

c - mktime 在错误的变量上越界

c - wprintf 会导致 valgrind 中的 "conditional jump or move depends on uninitialised value(s)"吗?

c++ - 大小为 4 的数组写入无效

assembly 分割错误

linux - 加载共享库 libc.so.6 时出现 mingetty 错误

c++ - mktime() 的奇怪行为

c - 为结构分配内存时出现问题