void log(){
time_t current = time(0);
tm *ptm = localtime(¤t);
stuf...
}
只是想确定 - 我是否需要在方法结束时释放tm指针分配的内存?
答案 0 :(得分:23)
不,你不应该解除分配,结构是静态分配的。
检查 documentation :
返回值
成功时指向静态内部std::tm
对象的指针,否则为NULL
。该结构可以在std::gmtime
,std::localtime
和std::ctime
之间共享,并且可以在每次调用时被覆盖。
答案 1 :(得分:7)
gmtime
和localtime
静态分配和共享。每次调用其中一个函数时,都会覆盖此结构的内容。
所以要小心结果 - 例如立即复制它们,不要存储指针。