No.3ベストアンサー
- 回答日時:
WindowsやLinuxのようなプロセスモデルのOSではプロセスが終了する時にメモリは全てOSが回収するので問題ありません。
メモリだけでなくファイルやネットワーク接続などの他資源もプロセスが終了する時に全て閉じられますので問題ありません。ただしネットワーク接続は閉じるまでに少しタイムラグがあるので終了したプロセスを直ぐに立ち上げ直すとポートが使用中で使えない場合があります。(固定ポートを使うサーバなど) あとファイルは削除まではしないので、異常終了時にロックファイルなど残ってしまって後の動作に支障が出ることがあります。
この回答へのお礼
お礼日時:2021/10/31 22:11
ありがとうございました。よく分かりました。これまでヒープ領域を確保したときはかなり神経質になっていましたが大丈夫と言うことですね。
No.2
- 回答日時:
>mallocでメモリ・リークが起こるのはどういうときなのでしょうか。
プロセス終了を越えてメモリーがリークすることはありません。
OSが自動的にメモリを回収します。
問題なのはプロセス稼働中にプロセスがメモリーを使いきって
機能を果たす前にプロセスが中断してしまうことなのです。
その頃にはOS自体もメモリが足りなくなって、
パソコンが落ちてしまうこともあります。最悪の事態です。
短期間稼働して直ぐに終わるプロセスなら
メモリリークが起きてもどうということはありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語の質問です。 以下の命令を実行するプログラムを作りました ①文字列aとbの長さを表示 ②aとb 1 2022/04/29 15:35
- C言語・C++・C# sprintf()の使い方について 1 2022/08/17 16:16
- ドライブ・ストレージ HDDの未割り当て領域が認識されない 7 2022/11/27 18:51
- ノートパソコン パソコンを、アップグレードした後に出来た、Cドライブの後に出来た、このドライブは? 3 2023/04/03 17:10
- C言語・C++・C# 写真のc言語の問題がa以外わかりません。 正直aも自信がなく、解説していただけないでしょうか? 答え 3 2022/04/29 18:21
- docomo(ドコモ) ストレージの空き領域があんまりないみたいな 5 2023/01/31 18:54
- 家政学 編入試験について 1 2022/08/22 03:00
- C言語・C++・C# あまりわかりません。 複素数$c$を具体的に定めた複素写像写像$f_c(z)$に対して、原点を含む領 4 2022/10/25 09:17
- その他(動画サービス) 動画のストリーミングについての質問です。 1 2023/03/22 02:48
- その他(ブラウザ) bingチャットの内容(縦長)をスクリーンショットで保存する方法 3 2023/02/28 02:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
非表示になったエクセルは?
-
explorer.exeが異様にメモリを食う
-
Linuxでのスレッド間メッセージ...
-
プロセスのアタッチ・デタッチ...
-
iTunesで「CDをインポート」→CD...
-
VBAで別プロセスのExcelのフル...
-
VB.NET 自プログラムのプロセス...
-
sleep関数の精度について
-
Linuxのchdir(カレントディレク...
-
ADOでアクセスのレコードに...
-
親子プロセス間でのデータの受...
-
SendMessageが失敗するときがある
-
C言語のプログラムにて二つの処...
-
Process.Startの戻り値を後で取得
-
共有メモリの同時アクセスにつ...
-
C言語 特定のプロセスの終了を...
-
ロードアベレージが高いのです...
-
OSPFでプロセスを分ける意義に...
-
他のアプリケーションをクリッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
explorer.exeが異様にメモリを食う
-
タスクマネージャーのプロセス...
-
プロセスのアタッチ・デタッチ...
-
C#でのbatファイル実行結果取得
-
VB6.0 SHELLで起動...
-
ADOでアクセスのレコードに...
-
Windowsでのfork方法
-
非表示になったエクセルは?
-
共有メモリの同時アクセスにつ...
-
プロセスIDからウィンドウハ...
-
プロセスIDの取得方法について
-
C++のプログラムをバックグラウ...
-
C++でシェルを起動
-
Linuxでのスレッド間メッセージ...
-
OSPFでプロセスを分ける意義に...
-
怪しいプロセス教えてください。
-
Process.Startの戻り値を後で取得
-
SendMessageが失敗するときがある
-
ウィンドウのタイトルからプロ...
おすすめ情報
早速のご回答ありがとうございました。そうなんですか。スタックは開放されるがヒープ領域はメモリ・リークとなると思っていました。そうするとmallocでメモリ・リークが起こるのはどういうときなのでしょうか。
mallocの使い方の記事で,「使用後メモリを解放しないとメモリ不足が起こるので,必ず開放するように」と書いてあったので,「プロセス終了後も確保され続けてしまう」と解釈していました。そうではないのですね。長時間常駐する様なプログラムの場合に重要になるのですね。プロセス終了時にはOSがメモリを自動的に回収するということなら,安心してデバッグを行うことができます。回答を締め切る前にもう一度だけ確認させてください。