как использовать localtime_s с указателем в переполнении стека

Я работаю с функцией в C ++, чтобы помочь получить целое число за месяц. Я провел некоторый поиск и нашел тот, который использует местное время, но я не хочу устанавливать его для удаления предупреждений, поэтому мне нужно localtime_s, но когда я использую это, мой указатель больше не работает, и мне нужен кто-то, чтобы помочь мне найти то, что мне не хватает с указателем.

#define __STDC_WANT_LIB_EXT1__ 1
#include <stdio.h>
#include <Windows.h>
#include "FolderTask.h"#include <ctime> //used for getMonth
#include <string>
#include <fstream>

int getMonth()
{
struct tm newtime;
time_t now = time(0);
tm *ltm = localtime_s(&newtime,&now);
int Month = 1 + ltm->tm_mon;
return Month;
}

я получаю ошибку:

ошибка C2440: «инициализация»: невозможно преобразовать из «errno_t» в «tm *»
примечание: для преобразования целочисленного типа в тип указателя требуется
reinterpret_cast, C-стиль или функциональный стиль

1

Решение

Похоже, вы используете Visual C ++, поэтому localtime_s(&newtime,&now); заполняет newtime структура с числами, которые вы хотите. В отличие от обычного localtime функция, localtime_s возвращает код ошибки

Так что это фиксированная версия функции:

int getMonth()
{
struct tm newtime;
time_t now = time(0);
localtime_s(&newtime,&now);
int Month = 1 + newtime.tm_mon;
return Month;
}
3

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

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

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