我的代码是

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

09-06 15:08