我这里有一个使用localtime函数的代码。但对于其输入参数的某些值,代码会崩溃(返回空指针)。我想知道它的输入允许范围。
#include <stdio.h>
#include <time.h>
int main ()
{
time_t rawtime;
struct tm g;
struct tm *gp;
__int64 tim;
tim = 7476811632013133299LL; // I know it's a weird number but valid for time_t
rawtime = tim / 1000LL;
gp = localtime(&rawtime);
printf("Pointer gp = %p\n", gp);
g = *gp; // this crahses because gp = NULL
return 0;
}
那么对于localtime函数的允许输入范围可以说什么呢?
最佳答案
从MSDN page for localtime
开始:
返回指向结构结果的指针,如果传递的日期为空
函数是:
1970年1月1日午夜前。
2038年1月19日03:14:07之后,UTC(使用时间32和时间32)。
在3000年12月31日23:59:59之后,UTC(使用'u time64和'uu time64't)。
关于c - 本地时间函数的有效参数是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35048512/