プロが教える店舗&オフィスのセキュリティ対策術

プログラム言語としてはfortran ,Cなのですが、配列のサイズについて指定せずにコンパイル、実行することは可能なのでしょうか。
また、以下の2つの違いはどうでしょうか。
1.メインの方には指定があるけれども、サブルーチン、関数側にはない。科学技術サブルーチン集などに見られるように、メインプログラムを自分で作ってそのサブルーチンを呼び出して利用する場合にそのようなものがあるかとは思いますが。サブルーチン側は一切手を加えず誰でも利用できるということですね。

2.メインにもサブルーチン、関数側にも指定がなく、外部データファイルを読み込んでみないと分からない。限界があるはずなので、いくらでもできるとは思えません。しかし、1000~10000ぐらい現実的な大きさのデータではできる可能性があると思いますが。

あるいは、検索して調べますが、何という名称でしょうか。

A 回答 (2件)

Fortran77 に限定.



1 はたとえば整合配列を使えばいい.
2 に対する「どんな処理系でも使える方法」は「あらかじめ余裕をもって配列の大きさを決めておく」だけのはず. もちろん処理系によってはライブラリで動的メモリ確保ができるようになっているかもしれん.
    • good
    • 0

「動的メモリ確保」を行えばプログラム内で必要な配列数がわかったところで必要分のメモリを取得しそれを配列に割り当てることができます。



配列のポインター変数を用意しておき、配列のサイズ(配列1個のサイズ)を図り、必要な配列数を求め、配列のサイズ×配列数のメモリを確保して配列のポインターに割り当てる。

配列を使い終わって不要になったら獲得したメモリの開放を忘れずに。
    • good
    • 0
この回答へのお礼

回答有難うございます。動的メモリ確保、ポインタはC言語の特徴かなと思います。Fortran77ではどうでしょうか。90, 95ではポインタがあるとのことでしたが。Fortranは昔からサブルーチンライブラリ集があり、その部分はブラックボックスでも使えるという感じだったと思います。データのサイズがまちまちなものをどのように対応していたのでしょうか。

お礼日時:2015/10/02 13:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!