私は 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;
}
他の場所では、この手順を呼び出します。
while(MT_reduce(&MT)==1);
MT
のアドレスに割り当てる前に古いリソースを解放していますnewMT
が、メモリ リークが発生するのはなぜですか? メモリをリークせずMT
に置き換えるにはどうすればよいですか?newMT