0

我的代码是

#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 的内存地址在哪里。

4

1 回答 1

2

localtime使用内部的全局缓冲区(或者可能是线程本地的),它返回其地址。这种保持全局状态的做法与工作方式strtokrand工作方式类似。请注意,这使得该函数本质上是不可租用的,并且可能是线程不安全的。

于 2013-07-11T07:12:51.440 回答