Reputation: 3927
void log(){
time_t current = time(0);
tm *ptm = localtime(¤t);
stuf...
}
Just want to be sure - do i need to release tm pointer allocated memory at the end of the method?
Upvotes: 24
Views: 10523
Reputation: 9089
No, you shouldn't. This structure is statically allocated and shared by the functions gmtime
and localtime
. Each time either one of these functions is called the content of this structure is overwritten.
So be careful with results - e.g. copy them immediately and don't store the pointer.
Upvotes: 9
Reputation: 206546
No you should not deallocate it,the structure is statically allocated.
Check the documentation:
Return value
pointer to a static internalstd::tm
object on success, orNULL
otherwise. The structure may be shared betweenstd::gmtime
,std::localtime
, andstd::ctime
, and may be overwritten on each invocation.
Upvotes: 29