ページ 11

メモリサイズを小さくしたい

Posted: 2006年5月09日(火) 20:56
by 7
一度確保したメモリのサイズをいじくる場合、realloc関数を使いますが、これってサイズを小さくする時にも有効なんでしょうか? また、これが有効じゃないならどんな方法があるんでしょう?
むしろ、小さくする必要がないとか...?

Posted: 2006年5月09日(火) 22:21
by イグトランス
realloc関数を呼んだら勿論新しい大きさの分しか扱ってはいけません。
プログラムからしたら小さくなるといえるでしょう。

しかしfree呼び出しもそうですが、内部で次回のmallocなどの呼び出しに備え、
本当にメモリを解放しているわけではないです。
プログラムの終了時には解放されます。(逆に言えばプログラムが終了するまで解放されません)

と言う話をAdvanced Windowsで読みました。

サーバソフトを作るのでもない限り、通常は気にする必要は無いと思いますが。

Posted: 2006年5月10日(水) 11:37
by 7
> しかしfree呼び出しもそうですが、内部で次回のmallocなどの呼び出しに備え、
> 本当にメモリを解放しているわけではないです。
> プログラムの終了時には解放されます。(逆に言えばプログラムが終了するまで解放されません)
malloc関数で大量のメモリを確保してすぐに解放するメモリクリーンアップ?ソフトなるものがありますけど、そのプログラムの終了時まで実はクリーンアップされてないんでしょうかね?。

> サーバソフトを作るのでもない限り、通常は気にする必要は無いと思いますが。
プログラム中、動的にウィンドウを作っていて、それらのウィンドウハンドルを管理するのにメモリ?を使っています。
とりあえず、あまり気にする必要もないようなので気にしないことにします。
イグトランスさん、ありがとうございました。