初日 最新 目次 MAIL HOME


*-- To Tell The Truth --*
Cruz
MAIL
HOME

My追加

2003年09月09日(火)
一応動くが・・・

エラーなのだが、どーやら開放に次ぐ開放を行っていたらしい。
だから、ヒープのアドレスがわからなくなっちゃうのか。

でも、いつ開放をした?

UINT hoge()
{
 UINT ret = 0;
 string st;
  :
  :
 return ret;
}

って定義すると、その定義された関数から戻る時、勝手にstを開放してくれる。
してくれないとフツーは困るのだが、なぜか開放してもらっちゃうと、例のエラーになる。

で、苦肉の策で自分で領域確保して放置する(笑)こんな関数を作成した。



// stirng型→char *変換
char * String2Char(string &st)
{
 char *pt = NULL;
 string *pst;

 pst = new string(st);
 pt = (char *)pst->c_str();

 return pt;
}



これを呼び出して使うと動く。
newしているのにdeleteしていないところがミソ。
おまけに(char *)でキャストしているし。

こわ〜