void log(){
time_t current = time(0);
tm *ptm = localtime(¤t);
stuf...
}
確認したいのですが、メソッドの最後に tm ポインターに割り当てられたメモリを解放する必要がありますか?
void log(){
time_t current = time(0);
tm *ptm = localtime(¤t);
stuf...
}
確認したいのですが、メソッドの最後に tm ポインターに割り当てられたメモリを解放する必要がありますか?
いいえ、割り当てを解除しないでください。構造は静的に割り当てられます。
ドキュメントを確認してください:
成功した場合、またはそうでない場合
は、静的内部std::tm
オブジェクトへの値ポインターを返しますNULL
。std::gmtime
構造体は、std::localtime
、およびの間で共有される場合がありstd::ctime
、呼び出しごとに上書きされる場合があります。
いいえ、すべきではありません。gmtime
この構造体は、関数およびによって静的に割り当てられ、共有されますlocaltime
。これらの関数のいずれかが呼び出されるたびに、この構造体の内容が上書きされます。
そのため、結果には注意してください。たとえば、結果をすぐにコピーし、ポインターを保存しないでください。