gpt4 book ai didi

c++ - 在 localtime() 中崩溃,但 gmtime() 有效

转载 作者:行者123 更新时间:2023-11-28 00:26:15 25 4
gpt4 key购买 nike

我在下面的函数中有一个 EXC_BAD_ACCESS:

time_t dateTime(getCurrentTimestamp());
tm *calculatedTime;
calculatedTime = localtime(&dateTime);
tm *dateTimeCopy = new tm();
memcpy(dateTimeCopy, calculatedTime, sizeof(tm));
return dateTimeCopy;

EXC_BAD_ACCESS 发生在 localtime() 中。我无法解释。如果我将本地时间更改为 gmtime,它就可以正常工作。这种行为的原因可能是什么?

编辑:修正了这段代码中的一个错误。正如 Rufflewind 所提到的。然而,崩溃仍然存在。

编辑 2:使用 localtime_r 它也能正常工作。我可能最终会如下所示使用它:

time_t dateTime(valueDateTime);
tm *dateTimeCopy = new tm();
localtime_r(&dateTime, dateTimeCopy);

最佳答案

这一行是可疑的:

memcpy(dateTimeCopy, &calculatedTime, sizeof(tm));

注意

  • dateTimeCopy 的类型为 struct tm *,而
  • &calculatedTime 的类型为 struct tm **

你的意思可能是:

memcpy(dateTimeCopy, calculatedTime, sizeof(tm));

关于c++ - 在 localtime() 中崩溃,但 gmtime() 有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24883977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com