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; }