• ベストアンサー

mallocとfree

y_okuの回答

  • ベストアンサー
  • y_oku
  • ベストアンサー率62% (25/40)
回答No.2

プログラムを実行するときには、同時に裏でこっそりメモリ管理屋さんも働いています。 その管理屋さんに、 メモリをこれだけ頂戴といういうのがmalloc()、 もういらないよというのがfree()です。 さて、そのメモリ管理屋さんは言葉どおり、 メモリを管理すること「だけ」しかしてくれません。 mallocされた領域はどこからどこまでというのを記憶しておく「だけ」です。 例えて言うなら、「この荷物みていて」といって頼んでおいたのに、 盗まれてしまったときに盗まれるの「見ていた」よという意味の見るだけ。に近いかも。 つまり、主プログラムがポインタを使って特定のメモリを読み書きすることと、 メモリ管理屋さんとはまったく関係がありません。 だからfree()をしても、freeされたことは覚えてるけど、 そこがそのあとどう使われようと関知しないんです。 ここで主プログラムとしてはどうすればよいのでしょう。 ……自分でもメモリを管理する必要があるってことです。 そのためにやることは次の2点です。 ・mallocしたメモリのポインタは保存しておく。 ・必要なくなったらfreeして、同時に必ずそのポインタもNULLにしておく。 これを守らないとメモリリークで無駄にリソースが減っていったり、 別の用途で確保したメモリ領域を書き換えちゃったり、 バグの温床になりますので、気をつけたいですね。

nao_hig
質問者

お礼

回答ありがとうございます。OSによって処理が違うということですね。これからもっと勉強していきます。ありがとうございました。

関連するQ&A

  • フリーメールでもらう画像

    No.296406の質問の続きです。パソコンのアドレスに画像を送ってもらえばいいのはわかりましたが、やっぱりプロバイダーのメールでもらった方がいいのでしょうか? デジカメの画像を受け取るとき、グーやヤフーなどのフリーメールでも画像は質を落とすことなく、きれいに見えるのでしょうか? 単純な質問ですいません。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=296406

  • どうか回答待ってます・・眠れないんです・・

    先ほどhttp://oshiete1.goo.ne.jp/kotaeru.php3?q=1576717とhttp://oshiete1.goo.ne.jp/kotaeru.php3?q=1576553で質問したものです。 なんどもしつこいかもしれませんが・・ あまり想像したくないのですが・・。一度あることは二度あるという言葉のとおり、また彼女が他人とやってしまう事があることがあるでしょうか・・

  • 恋愛依存症とは???

    こんにちは!! いつもお世話になってます。。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=629254 http://oshiete1.goo.ne.jp/kotaeru.php3?q=630879 http://oshiete1.goo.ne.jp/kotaeru.php3?q=633725 http://oshiete1.goo.ne.jp/kotaeru.php3?q=644351 ↑↑↑↑↑ 今まで質問してきたものですが これを見て私は恋愛依存症だと思いますか?? 自分でもそうなのかな??と思ったりしますが どうなんでしょう?? そしてどうしたら恋愛依存症から立ち直ることが できますか?? やっぱり趣味とか見つけたり仕事に打ち込んだりするのが一番なんでしょうか?? 私は、今の彼のことで悩んでいますが、 なんとか立ち直りたいんです!! 今の自分がいやでいやで堪らないんです。。 彼だけのことを考えている自分が情けないんです。。 恋愛依存症になったことがある方、そうでなくても構いませんが何かいい方法はないでしょうか?? よろしくお願いします!!

  • フォルダ内のアイコンの表示の仕方について2

    先日http://oshiete1.goo.ne.jp/kotaeru.php3?q=2093889にてお返事を質問をさせて頂いた件でもう一つ追加で教えて頂きたいのですが、特定のフォルダのものだけ大きいアイコンにしたいのですが、そういう事もできるのでしょうか。可能でしたらぜひ教えて頂けますと幸いです。

  • ページAにアクセスしないとページBにアクセスできない・・・

    例えば、B.htmlと言うページがあって、まずA.htmlにアクセスしてからでないとB.htmlにアクセスできないようにするPHPを探しています。 過去にも同じような質問があったので試してみたのですが、できませんでした。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2134159 ↑これです。 もし分かる方がいましたら教えてください。 よろしくお願いします。

    • 締切済み
    • PHP
  • 昨日のテレビ朝日で何が

    http://oshiete1.goo.ne.jp/kotaeru.php3?q=1053341 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1053390 等質問があるのですが、23日の7~9時どらえもんの枠で何かあったのですか? ただ単に地震で番組が潰れたというだけのことでしょうか?

  • 今の日本の選択  

    お世話になっております。 サリジェンヌです。 今、日本は重要な局面にいると思います。 今後の日本は弱者切り捨て型社会にすべきか、 国民皆を導いていくべきか皆様のご意見を伺いたく思います。また、前者の場合は、その方向に進んでいるように見えますが、後者の方向に針路変更したい場合はどうしたらよいとお考えでしょうか? 因みにサリジェンヌは後者派です(↓頑張ってきました(参考までに)) http://oshiete1.goo.ne.jp/kotaeru.php3?q=2254612 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2248694 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2245746 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2265951 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2265951 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2126838

  • 名前も電話番号も聞き出した。次はどうすれば・・・?

    下記の関連質問の続きです。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=612642 http://oshiete1.goo.ne.jp/kotaeru.php3?q=652311 http://oshiete1.goo.ne.jp/kotaeru.php3?q=654331 その後、名前と電話番号を教えてもらいました。 これって、多少は脈がありますよね? (ちょっと前までは、可能性があるかないかすらわからなかったので、一歩前進?だと思っているのですが) 日曜日空いているか訊いたところ、「他のバイトが入っているので・・・」とのことでした。 (でも、拒絶という感じではありませんでした) 今後どうしたら、彼女との仲を進展させられるでしょうか? アドバイスを頂けると嬉しいです。

  • 教えてgoo 追加回答の仕方

    お世話になります。 先ほど質問者の方が思い違いをしながら締め切ってしまいました。 確か追加回答がどこかから出来たと思うのですが、ちょっとやり方を見つけられませんでした。 どうすればよいでしょうか? 追加回答したい質問は http://oshiete1.goo.ne.jp/kotaeru.php3?q=1578382 です。

  • 回答者のマナー?

    ここの質問に対する回答 http://oshiete1.goo.ne.jp/kotaeru.php3?q=62568 ここの回答のまるまるコピー! http://oshiete1.goo.ne.jp/kotaeru.php3?q=29341 参考URLぐらい書くべきだと思うんですが・・・ みなさんはどう思われますか?