ID非公開

2021/11/25 22:41

33回答

main関数内の関数a内でmallocでヒープに確保したメモリはmain関数が終了しても残り続けますか? それとも、mainが動作している間のみ確保されるのですか?

ベストアンサー

3

3人がナイス!しています

ID非公開

質問者2021/11/26 17:56

なるほど。それは想定してませんでした。ありがとうございます!

ThanksImg質問者からのお礼コメント

新しい視点をありがとうございます

お礼日時:2021/11/30 11:30

その他の回答(2件)

0

原理的には、mainが終わってもfreeしない限り、プログラム側では開放されませんが、 mainが終了して、プログラムが終了すれば、そのプログラムに割れ当てられた領域自体が、 OSによって解放されるので、実質、残り続ける事はありません。

ID非公開

質問者2021/11/26 17:56

ありがとうございます!

1

一般的に言って、main関数の寿命=プログラムの寿命です。 main関数が終了する=プログラムが終了すると(OSの仕様にもよりますが)、全てのメモリが開放されるのが普通かと思います。

1人がナイス!しています

ID非公開

質問者2021/11/26 17:56

なるほど。それでも自分で解放するのは基本のようですね。ありがとうございます!