struct tm *localtime(const time_t *timep);
我检查了man localtime
,但是在使用后我是否有责任清理它。
事实上,我对返回指针的函数有很多类似的怀疑,你如何确定它应该被释放?
答案 0 :(得分:8)
此信息应位于手册页中 - 我的localtime
手册页说明了:
返回值指向a 静态分配的结构...
静态分配的对象不应该传递给free()
,所以这是你的答案 - 不,你应该不释放localtime()
的返回值。
在一般情况下告诉的唯一方法是查阅相关功能的文档或实现。
答案 1 :(得分:1)
关注返回指向静态数据指针的函数是正确的 - 它们通常不是线程安全的,并且最好避免它们,即使你的代码还没有使用 在多线程环境中。
最好使用这些功能的_r
形式,即localtime_r()