Почему не нужно malloc указатель struct tm перед вызовом функции localtime ()?

Мой код

#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

Решение

localtime использует внутренний глобальный буфер (или, возможно, локальный поток), чей адрес он возвращает. Эта практика поддержания глобального состояния похожа на strtok а также rand Работа. Обратите внимание, что это делает функцию по сути не арендной и, возможно, небезопасной.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]