我有这个代码:
time_t tt = time(NULL);
tm* currentTime = gmtime(&tt);
tm* storedTime = gmtime(&m_time);
其中 m_time 是构造时的 time_t 成员数据集。
当我用这个数据成员设置 storedTime 时,当前时间获得相同的值,就好像两个 tm 指针都指向同一个变量。这是预期的行为吗?我怎么能分开 tm 结构来比较时间?
谢谢
最佳答案
来自关于 gmtime
的文档:
使用此代码创建拷贝:
time_t tt = time(NULL);
tm currentTime = *gmtime(&tt);
tm storedTime = *gmtime(&m_time);
(这里的指针引用等价于
memcpy(¤tTime, gmtime(&tt), sizeof(tm))
)关于c++ - gmtime 同时改变两个指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10530804/