We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
https://rinatz.github.io/cpp-book/ch06-02-new-and-delete/ でnew/deleteの解説がされています。
解説文で
new を利用して確保したメモリの解放を忘れるとメモリリークになります。 new と delete は必ずセットで使いましょう。
と書いているにもかかわらず、そのすぐ上のサンプルコードはメモリーリークしています(p1が開放されない)。
int* p1 = new int(100); int* p2 = new int[5];// MEMORY LEAK!!!!! delete p1; // new によって確保されたメモリを delete で解放 delete[] p2; // 配列の場合は [] を付ける
現代のC++において、動的メモリー確保はまずstd::vector/std::stringのようなコンテナの利用を検討し、次にstd::unique_ptr、その次にstd::shared_ptrの利用を検討するべきでnew/deleteを使う場面はただの一ミリも存在しません。
std::vector
std::string
std::unique_ptr
std::shared_ptr
new
delete
new/deleteをただしく扱うことは人類には不可能であることは明らかであり、解説の必要性そのものを再考するべきと考えます。
The text was updated successfully, but these errors were encountered:
現代のC++において、動的メモリー確保はまずstd::vector/std::stringのようなコンテナの利用を検討し、次にstd::unique_ptr、その次にstd::shared_ptrの利用を検討するべき
基本的には同意です。が、本サイトが前提とするC++11時点では std::make_unique関数テンプレート が存在しないため、素直にC++14機能を利用するか、自分でヘルパ関数を書く必要があります。
std::make_unique
解説の必要性そのものを再考するべき
new/deleteという言語機能の解説は簡素に済ませ、よりモダンで安全な代替案を紹介するほうが建設的かと思います。
Sorry, something went wrong.
No branches or pull requests
https://rinatz.github.io/cpp-book/ch06-02-new-and-delete/
でnew/deleteの解説がされています。
解説文で
と書いているにもかかわらず、そのすぐ上のサンプルコードはメモリーリークしています(p1が開放されない)。
現代のC++において、動的メモリー確保はまず
std::vector
/std::string
のようなコンテナの利用を検討し、次にstd::unique_ptr
、その次にstd::shared_ptr
の利用を検討するべきでnew
/delete
を使う場面はただの一ミリも存在しません。new/deleteをただしく扱うことは人類には不可能であることは明らかであり、解説の必要性そのものを再考するべきと考えます。
The text was updated successfully, but these errors were encountered: