簡體   English   中英

time.h 如何處理 memory

[英]How time.h handles memory

抱歉,這可能是一個愚蠢的問題,但我在time.h的文檔中找不到答案。

因此,例如,當我打電話給gmtime

time_t today;
struct tm *info;
time(&today);
info = gmtime(&today);

它返回指向 tm 結構的指針。 我假設它返回指向分配有 malloc 的 memory 的一部分的指針,但是如果我現在調用free info - free返回錯誤。 那么庫time.h如何處理 memory 分配,我應該擔心“釋放”它嗎?

它返回指向分配有 malloc 的 memory 的一部分的指針,但是如果我現在免費致電獲取信息

不, gmtime返回指向 static object 的指針。

C99 7.23.3p1 開始

除了 strftime function 之外,這些函數都返回一個指向 static 對象的兩種類型之一的指針:分解的時間結構或字符數組。 執行返回指向這些 object 類型之一的指針的任何函數可能會覆蓋任何 object 中的信息,該信息由任何先前調用返回的值所指向的相同類型。 實現的行為就像沒有其他庫函數調用這些函數一樣。

庫 time.h 如何處理 memory 分配

它使用 memory 分配了 static 存儲持續時間,在整個程序執行期間有效。

我應該擔心“釋放”它嗎?

不。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM