我是C的新手,我的程序中有内存泄漏.
static int MT_reduce(MT_table** MT)
{
MT_table* newMT = new_MT((*MT)->argc);
/// fill data in the newMT ////
if(isReduced == 1 && newMT->size > 0)
{
MT_free(*MT);
*MT = newMT;
}
return isReduced;
}
Run Code Online (Sandbox Code Playgroud)
在其他地方,我称之为程序:
while(MT_reduce(&MT)==1);
Run Code Online (Sandbox Code Playgroud)
我在分配MT地址之前释放旧资源newMT,但为什么会出现内存泄漏?如何MT在newMT不泄漏内存的情况下更换?