是否需要取消分配本地时间的内存?

时间:2012-08-31 09:15:44

标签: c++ memory-management

void log(){
    time_t current = time(0);
    tm *ptm = localtime(&current);
        stuf...
}

只是想确定 - 我是否需要在方法结束时释放tm指针分配的内存?

2 个答案:

答案 0 :(得分:23)

不,你不应该解除分配,结构是静态分配的。

检查 documentation

  

返回值
  成功时指向静态内部std::tm对象的指针,否则为NULL。该结构可以在std::gmtimestd::localtimestd::ctime之间共享,并且可以在每次调用时被覆盖。

答案 1 :(得分:7)

不,你不应该。此结构由函数gmtimelocaltime静态分配和共享。每次调用其中一个函数时,都会覆盖此结构的内容。

所以要小心结果 - 例如立即复制它们,不要存储指针。