我有这个代码:
time_t tt = time(NULL);
tm* currentTime = gmtime(&tt);
tm* storedTime = gmtime(&m_time);
Run Code Online (Sandbox Code Playgroud)
其中m_time是构造时的time_t成员数据集.当我使用此数据成员设置storedTime时,当前时间获取相同的值,就像两个tm指针指向同一个变量一样.这是预期的行为吗?我怎么能分开tm结构来比较时间?
谢谢
从文档gmtime
:
该结构由gmtime和localtime函数静态分配和共享.每次调用其中一个函数时,都会覆盖此结构的内容.
使用此代码创建副本:
time_t tt = time(NULL);
tm currentTime = *gmtime(&tt);
tm storedTime = *gmtime(&m_time);
Run Code Online (Sandbox Code Playgroud)
(这里的指针deference相当于memcpy(¤tTime, gmtime(&tt), sizeof(tm))
)