我有这个代码:

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(&currentTime, gmtime(&tt), sizeof(tm)) )

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

10-12 19:40