不完全要素型の解決法

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
アバター
aquashooting
記事: 67
登録日時: 13年前

不完全要素型の解決法

#1

投稿記事 by aquashooting » 9年前

aquashootingです。学校の課題でQ学習に関するサンプルプログラムを製作しているのですが、配列や関数を定義する際、どうしても「配列の型が不完全要素を持っています」と表示されてしまいます。
下がそのコードの一部です。

コード:

int policy(int x, int y, int s, int num_a, int maze[ ][ ], int qtable[ ][ ]);
int max_qval(int s, int num_a, int qtable[ ][ ]);
int select_action(int s, int num_a, int qtable[ ][ ]);
問題は関数の引数にあるmaze・qtable配列をどう定義すれば不完全要素をまぬがれるのか
教えて欲しいのです。

アバター
usao
記事: 1887
登録日時: 11年前

Re: 不完全要素型の解決法

#2

投稿記事 by usao » 9年前

それら関数の引数 mazeやqtable に渡す配列のサイズはどうなってるのでしょう?
固定サイズ(静的)? それとも 実行中に決まる(動的)?


配列の定義が固定サイズ,例えば
int Data[4][3];
とかに決まっているならば,

関数側も
void F( int A[4][3] ); //[4]は飾りで,Aの型は int (*A)[3] になるけど
と書いておけばよいのではないでしょうか.

あるいはそういう表記だと無駄に混乱するとかであれば
struct Data{ int array[4][3]; };
みたく配列をstructに包んでしまうとか.

閉鎖

“C言語何でも質問掲示板” へ戻る