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を使う場面はただの一ミリも存在しません。
new/deleteをただしく扱うことは人類には不可能であることは明らかであり、解説の必要性そのものを再考するべきと考えます。
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をただしく扱うことは人類には不可能であることは明らかであり、解説の必要性そのものを再考するべきと考えます。