さて、前の質問は明確に答えられましたが、私は別の問題を発見しました。
私がやったら:
char *test(int ran){
char *ret = new char[ran];
// process...
return ret;
}
そしてそれを実行します:
for(int i = 0; i < 100000000; i++){
string str = test(rand()%10000000+10000000);
// process...
// no need to delete str anymore? string destructor does it for me here?
}
したがって、char *をstringに変換した後、削除について心配する必要はありませんか?
編集:答えたように、私はdelete[]
それぞれnew[]
の呼び出しをしなければなりません、しかし私の場合、ポインタが失われたのでそれは不可能です、それで問題は:どうやってcharをstringに正しく変換するのですか?