![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
No.5
- 回答日時:
#2,#3へのお礼を見ていると、
「newしたものをdeleteしなくても、正常終了させればいいや」
という結論になりそうなので一言。
プロ(他人に自分の作ったソフト/ソースファイルを使っていただく人間)を目指すならば、newしたものは必ずdeleteしましょう。
ソースを見られたとき、ちゃんとdeleteしていないところから、あなたの仕事の信頼性が疑われます。
また、#2の
>OSがまともにメモリ管理をしていてくれていたらアプリ終了時にちゃんと解放されます。
という意見も、ちゃんと保障されているわけではありません。Windowsはもちろん、UNIX/Linuxでも終了時に開放されるとは100%言い切れないのです。
また、サーバー関係のプログラムは一度動かしたら24時間動き続けるものもあります。その様なプログラムでリソース確保しっぱなしをしたらそのプログラムだけでなくほかのプログラムにも影響を及ぼします。
「サーバープログラミングのときは注意するよ」というかもしれませんが、「newしたらdelete」を習慣にしている人でも時にdeleteを忘れてしまうことがあります。習慣にしていない人間ならば確実にその危険性は増えます。
繰り返しになりますが、自分でnewしたものは必ずdeleteすることを習慣として身に付けましょう。
ありがとうございます
newしたものを途中で破棄できる場合は破棄しているのですが最後はどうせ終わるのだから利用していたものをすべて破棄する手間を省こうとしたのです
newで確保したポインタをnewするたびにベクタにプッシュしておき最後にベクタにたまっているポインタをすべて取りだし一つづつデリートしていくようにしました
No.4
- 回答日時:
ちなみに、参考までに Java の場合はもっと面倒です。
アプリ側としては null を入れてやればそれで終わりですが、裏ではガーベージコレクション(通称GC)というプログラムが、必死こいて「もう開放しても構わないメモリ」を探しつづけています。
小さなプログラムなら大した問題にはなりませんが、メモリを馬鹿食いするようなロジックだと、このGCの動作時にシステムを圧迫します。
よって、Java はロジックのチューニングによってしか、メモリを管理することができません(裏技とか使えばまた違うんでしょうけど)。
Cと Java のメモリ管理は、それぞれ一長一短なんです。
No.3
- 回答日時:
メモリのことだけを考えるのであれば, 「普通の OS」でリークすることはありません. このくらいのメモリ管理は OS のお仕事です. メモリが十分にあるのなら, むしろプログラム中で毎回 delete するより全くしない方が速くなる可能性もあります.
ただし, セマフォなど他のリソースまできちんと OS が面倒をみているかどうかは不明.
ありがとうございます
途中の開放でなく終了時(WM_CLOSE)の開放ですから実行速度の問題は無いと思います
きちんと清算することにメリットが無いのならばしないほうが楽ですね?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- バックアップ パソコンからDVDへコピー 5 2022/08/18 14:02
- 戦争・テロ・デモ 日本防衛省の防衛力強化と日本正規軍隊の転換に対する質問です。 2 2022/12/20 21:34
- C言語・C++・C# C言語の質問です。 以下の命令を実行するプログラムを作りました ①文字列aとbの長さを表示 ②aとb 1 2022/04/29 15:35
- 大学・短大 アナロジーにおけるベース領域とターゲット領域とはなんですか?先生の説明によるとりんごが赤いということ 2 2022/06/17 16:02
- C言語・C++・C# あまりわかりません。 複素数$c$を具体的に定めた複素写像写像$f_c(z)$に対して、原点を含む領 4 2022/10/25 09:17
- CPU・メモリ・マザーボード デスクトップPCのOS(C:)の空き領域がどんどん減ります。 9 2022/12/12 09:24
- 宇宙科学・天文学・天気 宇宙って何から出来たの? 7 2022/05/31 22:35
- 家政学 編入試験について 1 2022/08/22 03:00
- docomo(ドコモ) ストレージの空き領域があんまりないみたいな 5 2023/01/31 18:54
- CPU・メモリ・マザーボード ストリーミングの一時処理用の領域について 1 2023/04/11 21:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語で、メモリを解放しないで...
-
【C言語】再帰が時間がかかる...
-
エクセルVBA 大容量CSVファイル...
-
VBAの配列サイズとメモリに関して
-
4GB搭載したマシンのメモリ情...
-
メモリの解放の仕方
-
ヒープ領域の「ヒープ」という...
-
大容量のメモリ確保をスワップ...
-
エクセル キャッシュメモリー...
-
動的メモリとexit(C言語)
-
sil_rew_memのメモリアクセスに...
-
メモリ不足
-
シェル(perl)が使用するメモリ...
-
C言語における再帰呼び出しの...
-
CImage::ReleaseDC()のエラーで...
-
マクロのスピードがダウンする??
-
[ちょっと息抜き]メモリを解放 ...
-
実行中にnewで領域確保した場合
-
初心者過ぎる質問ですが、VRAM...
-
プログラム領域の算出方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語で、メモリを解放しないで...
-
VBAの配列サイズとメモリに関して
-
【C言語】再帰が時間がかかる...
-
C言語における再帰呼び出しの...
-
メモリが不足しています(VBA)
-
メモリのセグメント違反の解決...
-
メモリ不足
-
エクセル キャッシュメモリー...
-
ファイルマッピング関数で失敗
-
動的メモリとexit(C言語)
-
エクセルVBA 大容量CSVファイル...
-
メモリの解放の仕方
-
「ヒープサイズの設定」て何?
-
EXCEL-VBAにてADOのレコードセ...
-
LoadLibraryしたらFreeLibrary
-
マインスイーパ、自動解析プロ...
-
バッチファイルでの実行EXEのメ...
-
エクセルのメモリ使用状況/Appl...
-
C言語:関数のメモリ上でのサイ...
-
大容量のメモリ確保をスワップ...
おすすめ情報