- 270 名前:デフォルトの名無しさん [2008/09/15(月) 16:19:19 ]
- stlの質問です。
下記のプログラムを実行するとhoge関数が呼ばれて戻ってきた時には、TESTメンバのstrの領域はデストラクタで、 解放されてしまってます。この場合は、main()の最後でlistのstrを解放するしかないのでしょうか? もっと別のやり方があれば教えて下さい。宜しくお願いします。 #include <string> #include <list> struct TEST { std::string *str; TEST() : str(NULL) {} ~TEST() { delete[] str; } }; void hoge(std::list<TEST> &list) { TEST test; test.str = new std::string[10]; list.push_back(test); } int main() { std::list<TEST> list; hoge(list); // list.str不適切なポインタ return 0; }
|

|