是否需要解除分配本地时间的内存

Does memory for localtime need to be deallocated?

本文关键字:时间 内存 解除分配 是否      更新时间:2023-10-16
void log(){
    time_t current = time(0);
    tm *ptm = localtime(&current);
        stuf...
}

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

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

检查文档

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

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

因此,请小心结果 - 例如,立即复制它们并且不要存储指针。