喫茶XRAYトップページ

[▲前のスレッド]

[735] 動的メモリの割り当てについて返信 削除
2006/4/13 (木) 00:32:41 OK牧場
久しぶりに書き込みをさせていただきます。

動的メモリってどういうときに使うんでしょうか。
本を読んでると出てくるので、割り当てた領域に値をいれて・・と
読み流してはいるものの、配列や整数もメモリ自体は割り当てられてるはずですし・・。
新たにメモリを確保できるように動的を使うといわれても
いまいちピンきません。
入門書に載ってるような内容ですが、よろしくお願いします。

[736] Re:動的メモリの割り当てについて返信 削除
2006/4/13 (木) 21:51:11 Mr.XRAY
▼ OK牧場さん
> 動的メモリってどういうときに使うんでしょうか。
多分OK牧場さんも,それと気づかずに使用しているじゃないでしょうか.

用語というのは,会話をスムーズに進行する時には大いに役に立ちますが,
まだよくわからない人や時期には,難解なイメージとなりますね.
「それっ,紙に文字を書くやつで,減ると削らなければいけないやつで
何々の文章を書いてくれ」
と,いちいち言っていたら効率が悪いです.「鉛筆で」と言った方が簡単で
す.でも鉛筆を知らない人には通じません.

動的,静的もそうじゃないのでしょうか.
var  V: String
とすれば,文字を格納する領域を256バイト確保します(1バイト目は文字数
ですから,使用可能なのは255バイト).一般的にはメモリの静的確保と言え
ます.ただし,文字の長さは動的に変化します.

一方,
http://homepage2.nifty.com/Mr_XRAY/Delphi/plSamples/T_SendTextThreadAttach.htm
のButton4Clickでは,Bufferを文字列のポインタ(格納アドレス)として定義
して,実際には,Buffer:=StrAlloc(256);で動的に確保しています.

DLLも見方によれば,呼出すことによる,動的なメモリ確保かも知れません.
DLLでなくても,コード上では動的な確保の場合もあるかも知れませんが...

http://homepage2.nifty.com/Mr_XRAY/Delphi/plSamples/T_CreateComponent.htm
これだって,動的なメモリの確保の例があるとも言えます.
(特にリスト3のTListによりAddしていること)

数値解析(数学)では,連立一次方程式などの解法ルーチンを開発する時
に,次元数(解の数)がいつも一定ならいいですが,汎用的にするには,次元
数を引数として,動的に配列の領域を確保できると便利です.
動的配列ですね.これが使用できるとできないのとでは,プログラムの開発
(アルゴリズム)がかなり変わってきます.
動的な確保ができないと,上限を指定する必要があります.動的確保であれ
ば,メモリの範囲内で配列の上限が決まります.

人は,生まれてから全ての用語や言葉を教えられて知るわけではなく,
会話の流れや文脈から用語の意味を解釈したりして,知識を広げていく
わけですから,あまり深く考えることはないかも知れません.

外国語を学ぶのに文法(動詞,副詞,形容詞等の用語の意味)から入る必要は
ありません.まず,使えることです.
用語や理屈は後でいくらでも学習することができるのと似ている気がします.


[737] Re2:動的メモリの割り当てについて返信 削除
2006/4/15 (土) 23:53:49 OK牧場
例まで載せていただいてありがとうございます。
メモリの必要な量が一定でない式ってのを読ませていただくと
なるほどな〜と思いました。
読めるけど使えない(話せない)って日本人が覚えた外国語みたい。
プログラムって基本書から離れて自分がかけるようになるのが
ホントに難しいと感じてます。

[▼次のスレッド]
INCM/CMT
Cyclamen v3.82