我的代码是
#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的内存地址在哪里。
最佳答案
localtime
使用内部的全局缓冲区(或者可能是线程本地的),返回其地址。保持全局状态的这种做法类似于strtok
和rand
的工作方式。请注意,这使该函数本来就不可租用,并且可能是线程不安全的。