我正在处理DLL中的日志记录,但是获取日期和时间会导致断言。
函数应该返回一个类似于3/3/2022 8: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
发布于 2022-03-04 03:13:39
我把它改了
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;
}
https://stackoverflow.com/questions/71345845
复制相似问题