我在以下代码中出现内存泄漏。我分配一次内存并在使用后将其删除。谁能解释导致内存泄漏的幕后情况?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);
但我仍然想了解第一段代码中的问题。任何关于哪些代码更好的见解也将是有用的。