C++でとあるクラス内のパブリックなメンバ関数から以下を呼び出す。

void fileout(double val)
{
ofstream ofs("core.d",std::ios::out | std::ios::app);

if(!ofs)
{
cout <<"error fileout"<< endl;
exit(1);
}

ofs << Sec << " "<< val << endl;
ofs.close();
}

するとcloseするときに
*** glibc detected *** free(): invalid next size (normal): 0x08ea3180 ***
っていうエラーが出て怒られるんですが、、。
ていうかメイン関数のほんとどうでもいいところでファイルを
開いて閉じる動作するだけで上のエラーが出るんですが・・。
どなたか思い当たる節はありませんか?