是否需要释放返回的localtime()结构?

时间:2011-06-02 05:41:57

标签: c memory-management function-prototypes

struct tm *localtime(const time_t *timep);

我检查了man localtime,但是在使用后我是否有责任清理它。

事实上,我对返回指针的函数有很多类似的怀疑,你如何确定它应该被释放?

2 个答案:

答案 0 :(得分:8)

此信息应位于手册页中 - 我的localtime手册页说明了:

  

返回值指向a   静态分配的结构...

静态分配的对象不应该传递给free(),所以这是你的答案 - 不,你应该释放localtime()的返回值。

在一般情况下告诉的唯一方法是查阅相关功能的文档或实现。

答案 1 :(得分:1)

关注返回指向静态数据指针的函数是正确的 - 它们通常不是线程安全的,并且最好避免它们,即使你的代码还没有使用 在多线程环境中。

最好使用这些功能的_r形式,即localtime_r()