struct tm *localtime(const time_t *timep);
我检查了man localtime
但是没有关于是否有责任在使用后清洁它。返回的localtime()结构是否需要释放?
事实上,我对函数返回指针有很多类似的疑惑,你如何确定它应该被释放?
struct tm *localtime(const time_t *timep);
我检查了man localtime
但是没有关于是否有责任在使用后清洁它。返回的localtime()结构是否需要释放?
事实上,我对函数返回指针有很多类似的疑惑,你如何确定它应该被释放?
这些信息应该是在man page - 我localtime
手册页说:
返回值指向一个 静态分配结构......
静态分配的对象不应该是传递到free()
,所以这是你的答案 - 不,你应该不是免费返回值localtime()
。
在一般情况下告诉的唯一方法是查阅相关函数的文档或实现。
你说的没错予以关注返回指向静态数据功能 - 它们常常不是线程安全的,这是很好的做法,以避免他们,即使你的代码是不是但在多线程环境中使用 。
这是更好地使用_r
形式的这些功能,即localtime_r()
可能重复[如何在C分配本地时间的结果结构?](http://stackoverflow.com/questions/8694365/how -is最结果-结构-的-本地时间分配入-c)的 – user 2014-10-19 08:30:18