ランダムな値mod 5と値Xと配列内の位置の二重配列が与えられているので、位置の値とその近傍をすべてXに変更する必要があります。 私は再帰的にやっています。私は考えが正しいと思うが、私はreturnステートメントと再帰呼び出しを使った代入を混乱させる必要がある。 とき、私は ノートを取得するコンパイル:期待される「int型**」が、引数の型は「int型(*)[8]」であるにもFloodfillアルゴリズムC - 二重配列を返しますか?
私がメインで関数を使用している場合、私は 警告を得る:渡す引数を1互換性のないポインタ型からの 'floodfill'の使用 table = floodfill(table、i、j、r);
エラー:配列型の式への代入 table = floodfill(table、i、j、r);表はアルゴリズムが
int ** floodfill (int **tab, int i, int j, int v)
{
/*if statement to make the values to the right of the specified position
equal to the specified value*/
if (tab[i][j+1] == tab[i][j])
{
/*the assignment is recursive*/
tab = floodfill (tab, i, j+1, v);
}
/*this assignment is executed after each of the values to the
right of tab[i][j] are changed to v*/
tab[i][j] = v;
/*returns the tab with the specified position changed*/
return tab;
}
明らかにコードがため(NOのmalloc、外の結合位置と右の値のみFLOODFILLためのチェックなし)不完全で実行されなければならないの表である
簡潔さのために、私の問題に関係するものはすべてあるはずです。
あなたの質問が何ですか?それははっきりしない。 – Carcigenicate
'table'はどのように宣言されていますか? 2次元配列とTへのポインタへのポインタを混同していますか?警告はそうであることを示しています。 http://stackoverflow.com/questions/7586702/is-2d-array-a-double-pointer –