我开始学习Linux编程,使用C语言,遇到了以下问题:
time_t now;
struct tm *local_time;
now = time(NULL);
local_time = localtime(&now);
函数
localtime
是Linux API的一部分,接受一个指向 time_t
的指针是没问题的,但为什么它返回一个指向tm
结构体的指针呢?我的问题是,在初始化之后,
tm
结构体是如何被管理的?如果
localtime
静态地分配了该结构体,那么它不能保证在程序继续执行时该结构体不会被覆盖,而如果 tm
结构体是动态分配的,则程序员必须在不再需要该结构体时调用 free
。那么,对于返回指针的 C 函数来说,什么才是正确的做法呢?
谢谢!