次のコードでメモリリークが発生しています。メモリを一度割り当てて、使用後に削除しています。ここでメモリリークを引き起こしている舞台裏で何が起こっているのか、誰か説明できますか? Visual Studio は、このステートメントにリークがあると言っています。これらのステートメントを削除すると、リークはなくなります。
wxProcess *tmpProcess = new wxProcess();
tmpProcess->Redirect();
wxExecute(CmdToExecute, wxEXEC_SYNC, tmpProcess);
wxExecute(CmdToExecute, wxEXEC_SYNC, tmpProcess);
delete tmpProcess;
私はそれを次のように変更しましたが、メモリがスタックに割り当てられるので問題ありません。
wxProcess tmpProcess1, tmpProcess2;
tmpProcess1.Redirect();
tmpProcess2.Redirect();
wxExecute(CmdToExecute, wxEXEC_SYNC, &tmpProcess1);
wxExecute(CmdToExecute, wxEXEC_SYNC, &tmpProcess2);
それでも、最初のコードの問題を理解したいと思います。どのコードが優れているかについての洞察も同様に役立ちます。