*-- To Tell The Truth --*
Cruz
MAIL
HOME
|
|
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 *)でキャストしているし。
こわ〜
|
|