繁体   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