2011-06-02 97 views
6
struct tm *localtime(const time_t *timep); 

我检查了man localtime但是没有关于是否有责任在使用后清洁它。返回的localtime()结构是否需要释放?

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

+0

可能重复[如何在C分配本地时间的结果结构?](http://stackoverflow.com/questions/8694365/how -is最结果-结构-的-本地时间分配入-c)的 – user 2014-10-19 08:30:18

回答

8

这些信息应该是在man page - 我localtime手册页说:

返回值指向一个 静态分配结构......

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

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

1

你说的没错予以关注返回指向静态数据功能 - 它们常常不是线程安全的,这是很好的做法,以避免他们,即使你的代码是不是但在多线程环境中使用

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

相关问题