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