• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:newとdeleteでのアサート)

C++とViasulC++2003で現在時刻を取得する関数のアサートエラーの原因は?

このQ&Aのポイント
  • C++とViasulC++2003で現在時刻を取得する関数を作成している際に、_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)というアサートエラーが発生し、プログラムが強制終了してしまいます。
  • 原因は、newとdeleteの使用に関連していると考えられますが、具体的な原因は解明されていません。
  • 解決策を得るためには、ソースコードの詳細を確認し、可能なエラーの原因を特定する必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

> tm *mytime = new tm(); で作成したポインタを > mytime = localtime( &long_time ); で潰してしまっているため > delete mytime; で システム側(localtime)で作成したポインタを削除しようとしているのでエラーになっています localtimeの戻り値を受けるポインタを宣言してNULLで初期化しておいて使いましょう struct tm* mytime = NULL; time( &long_time ); mytime = localtime( long_time ); といった具合です

hiroko_ss
質問者

お礼

お返事ありがとうございます。 ああ・・つまりnewとdeleteは不要なのですね;; ご丁寧に説明まで添えていただいて助かりました

すると、全ての回答が全文表示されます。

関連するQ&A