Back

3月 31 2020

free(): double free detected in tcache 2

Ç言語のノロノロ勉強を始めて3年目、表題のようなエラーに翻弄されてしまった。free() という句は malloc のところで出て来た記憶がある程度で、どちらも未だ使用したこともなかった。
検索してみると、色々出て来るが、大分状況が違うようで理解が追いつかない。
ある時突然現れたので、もう一度自分のミスを追いかける作業をしてみた所、結果は次のようなものであった。

int main(void)
{
        :
        test();
        :
        return(0);
}

void test(void)
{
        if (fp = popen([commandline],"r") !=NULL)
        {
                :
                :
                pclose(fp);    // クローズ1
        }
        pclose(fp);            // クローズ2・・・・・こちらに統一することにした
        return;
}
Back