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。これらの関数のいずれかが呼び出されるたびに、この構造体の内容が上書きされます。
そのため、結果には注意してください。たとえば、結果をすぐにコピーし、ポインターを保存しないでください。