こんばんは、川合です。 FORM-Akkie さんは 2004/04/06 21:35:26 の「[osask 6898] BOARD: 変 数の初期化」で書きました: >ポインターを宣言しmallocで領域を確保すればよいと思います >具体的には >*char hoge; >hoge=malloc(sizeof(char)*5)) >でchar形の5個の配列ができると思います >間違ってたらごめんなさい 多分ちょっと書き間違いです。 char *hoge; hoge = malloc(sizeof (char) * 5); ・・・ということが言いたかったのでしょう。 とりあえず、配列変数のサイズを完全に自由にすることは、普通の宣 言ではできません。これはほぼ全てのC言語が共通に持っている制約で す。どうしてもやりたい場合は、JUGZZYさんの説明どおりmallocを使う のが普通です。 --- ただ、ちょっと確認したいのですが、 >width = 40; >s[width + 4]; というとき、このwidthの範囲について最大値を想定できないもので しょうか。最大でも100にしかならないと知っていれば、 int s[104]; とやっておけば済むことです。この場合もしwidthが40であっても、残 り60個分のメモリを使わないだけです。これはせいぜい240バイトであ って、たいした問題にはなりません。mallocを使うとそれだけで300バ イトくらいは増えますからね。 それでは。 -- 川合 秀実(KAWAI Hidemi) OSASK計画代表 / システム設計開発担当 E-mail:kawai !Atmark! osask.jp kawai@imasy.org Homepage http://osask.jp/