gpt4 book ai didi

c++ - gmtime 同时改变两个指针

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:38:28 24 4
gpt4 key购买 nike

我有这个代码:

time_t tt = time(NULL);
tm* currentTime = gmtime(&tt);
tm* storedTime = gmtime(&m_time);

其中m_time是构造时的一个time_t成员数据集。当我用这个数据成员设置 storedTime 时,当前时间获得相同的值,就好像两个 tm 指针指向同一个变量一样。这是预期的行为吗?我怎么能分开 tm 结构来比较时间?

谢谢

最佳答案

来自关于 gmtime 的文档:

This structure is statically allocated and shared by the functions gmtime and localtime. Each time either one of these functions is called the contents of this structure is overwritten.

使用此代码创建拷贝:

time_t tt = time(NULL);

tm currentTime = *gmtime(&tt);
tm storedTime = *gmtime(&m_time);

(此处的指针引用等同于 memcpy(&currentTime, gmtime(&tt), sizeof(tm)))

关于c++ - gmtime 同时改变两个指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10530804/

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