我的代码是
#include <iostream>
#include <ctime>
using namespace std;
void main()
{
time_t nowTime;
struct tm *nowStruct;
time(&nowTime);
nowStruct = localtime(&nowTime);
cout << nowStruct->tm_hour << ":" << nowStruct->tm_min << endl;
}
我怀疑用于存储struct tm的内存地址在哪里。
答案 0 :(得分:2)
localtime
使用内部的全局缓冲区(或者可能是线程本地的),它返回的地址。这种保持全局状态的做法与strtok
和rand
的工作方式类似。请注意,这使得该函数本质上是非租用的,并且可能是线程不安全的。