ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
7
記事: 473 登録日時: 2005年5月31日(火) 18:51
お住まい: 新潟県
連絡する:
#1
投稿記事
by 7 » 2006年5月09日(火) 20:56
一度確保したメモリのサイズをいじくる場合、realloc関数を使いますが、これってサイズを小さくする時にも有効なんでしょうか?
また、これが有効じゃないならどんな方法があるんでしょう?
むしろ、小さくする必要がないとか...?
イグトランス
記事: 899 登録日時: 2005年5月31日(火) 17:59
お住まい: 東京都
連絡する:
#2
投稿記事
by イグトランス » 2006年5月09日(火) 22:21
realloc関数を呼んだら勿論新しい大きさの分しか扱ってはいけません。
プログラムからしたら小さくなるといえるでしょう。
しかしfree呼び出しもそうですが、内部で次回のmallocなどの呼び出しに備え、
本当にメモリを解放しているわけではないです。
プログラムの終了時には解放されます。(逆に言えばプログラムが終了するまで解放されません)
と言う話をAdvanced Windowsで読みました。
サーバソフトを作るのでもない限り、通常は気にする必要は無いと思いますが。
7
記事: 473 登録日時: 2005年5月31日(火) 18:51
お住まい: 新潟県
連絡する:
#3
投稿記事
by 7 » 2006年5月10日(水) 11:37
> しかしfree呼び出しもそうですが、内部で次回のmallocなどの呼び出しに備え、
> 本当にメモリを解放しているわけではないです。
> プログラムの終了時には解放されます。(逆に言えばプログラムが終了するまで解放されません)
malloc関数で大量のメモリを確保してすぐに解放するメモリクリーンアップ?ソフトなるものがありますけど、そのプログラムの終了時まで実はクリーンアップされてないんでしょうかね?。
> サーバソフトを作るのでもない限り、通常は気にする必要は無いと思いますが。
プログラム中、動的にウィンドウを作っていて、それらのウィンドウハンドルを管理するのにメモリ?を使っています。
とりあえず、あまり気にする必要もないようなので気にしないことにします。
イグトランスさん、ありがとうございました。