void hoge(){ char *p = new char[100]; // ここで例外発生したら pはリークしますよ! delete p; } よくある、みつけにくいメモリリークですよね。 ちゃんと try/catch でかこみ finalizeで解放し、例外をthrowし直さないとダメですね 面倒だし、無駄な例外処理が必要になり速度的にも あれですよね。 まずは auto_ptr STLにはauto_ptrというものがあり、スマートポインタとして使われてましたが auto_ptrは deprecated (非推奨、削除予定)なので、 unique_ptr を使いましょう unique_ptrは、昔 boost::scoped_ptrって呼ばれてたやつですね。 ってことで、auto_ptr がダメな理由 #include <iostream> #include <string> #i
![これからC++11を学ぶ君に。生ポとおさらば unique_ptr編 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/006e0788fb94a7e3cf242e269edc4a3638594ec9/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUUzJTgxJTkzJUUzJTgyJThDJUUzJTgxJThCJUUzJTgyJTg5QyUyQiUyQjExJUUzJTgyJTkyJUU1JUFEJUE2JUUzJTgxJUI2JUU1JTkwJTlCJUUzJTgxJUFCJUUzJTgwJTgyJUU3JTk0JTlGJUUzJTgzJTlEJUUzJTgxJUE4JUUzJTgxJThBJUUzJTgxJTk1JUUzJTgyJTg5JUUzJTgxJUIwJTIwdW5pcXVlX3B0ciVFNyVCNyVBOCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9Y2I4NTU1NGNkNmY2NDIxNzExN2EwNzA0ODc4OTJmNTQ%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwWXVraU1peWF0YWtlJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1iNDhjZDY2N2JmMDg1NzM3M2FiZDViOWZiYjdlOWNkYw%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Dcdbcbf03e78cad036bd03623cad9e9f6)