1
私は、djikstraのアルゴリズムを使って迷路を通過する最短経路を見つけるコードを書いています。ポインタを含む配列を正しく渡すには?
私は私の配列を渡すとき、私は私が最初に初期化され、ここでの主に私の行列を割り当てられていた
warning "passing argument 1 of 'traverse' from incompatible pointer type"
expected 'int (*)[(sizetype)(n)]' but argument is of type 'int **'
を取得しています:
int **mat;
mat = (int **)malloc(sizeof(int *)*n);
for(i=0; i<n; i++){
mat[i]=(int *)malloc(sizeof(int)*n);
}
そして、私は
によって機能を作成していますがvoid traverse(int mat[n][n], int src){
ここでメインでこの関数を呼び出します
traverse(mat, 0);
私はそれがポインタとして配列を渡すことに問題があると確信していますが、私はあまりにもここの規則に精通していません。どんな助けもありがとうございます。
ようこそ! ['malloc()'と 'C 'のファミリーの戻り値をキャストしない理由についてのこのディスカッションを参照してください。](http://stackoverflow.com/q/605845/2173917)。 –
私は今、これを読んで、感謝します。 – r2333
警告: 'void traverse(int mat [n]、int src)' - > 'void traverse(int ** mat、int src)' – LPs