小编Сер*_*ков的帖子

为什么内存泄漏在这段代码中?

我是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,但为什么会出现内存泄漏?如何MTnewMT不泄漏内存的情况下更换?

c memory-leaks

0
推荐指数
1
解决办法
104
查看次数

标签 统计

c ×1

memory-leaks ×1