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内部のグローバル バッファ (またはおそらくスレッド ローカル) を使用し、そのアドレスを返します。strtokグローバルな状態を維持するこのプラクティスは、howとrandworkに似ています。これにより、関数は本質的に非レントラントになり、おそらくスレッドセーフではないことに注意してください。

于 2013-07-11T07:12:51.440 に答える