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

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

4

2 回答 2

27

不,你不应该释放它,结构是静态分配的。

检查文档

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

于 2012-08-31T09:16:54.607 回答
8

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

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

于 2012-08-31T09:23:07.277 回答