c-断言时间ptr!=nullptr



我正在登录DLL,但获取日期和时间会导致断言。

该函数应该返回一个时间,如2022年3月3日8:00:00。

但它引起了一种断言和一种警告tm_v’可以是"0";。

代码

char* date_and_time()
{
time_t timer = time(NULL);
char buffer[26];
struct tm* tm_v = malloc(sizeof(struct tm));
tm_v = localtime_s(tm_v, &timer);
strftime(buffer, 26, "%m/%d/%Y %H:%M:%S", tm_v);
return buffer;
}

断言消息
文件:minkernel\crts\ucrt\src\appcrt\time\strftime.cpp
行:135
表达式:timeptr!=nullptr

我通过将
time_t timer = time(NULL);更改为time_t timer;并将
struct tm* tm_v = malloc(sizeof(struct tm));更改为struct tm tm_v;来修复它

这就是现在的功能:

char* date_and_time()
{
char buffer[26];
time_t timer;
struct tm tm_v;
time(&timer);
localtime_s(&tm_v, &timer);
strftime(buffer, 26, "%m/%d/%Y %I:%M:%S %p ", &tm_v);
return buffer;
}

最新更新