私は、スワップするために、データを変更する関数に引数として渡されたデータをCで変更することを知っています。変更するデータ。通常のデータや配列は非常に簡単ですが、配列の配列について言えば、私は固執して混乱しています。私のメインでC言語の配列を持つ配列(行列)の値を変更する
私が持っていた:
int p[20][21];
FILE *f;
f=fopen("intro.txt","rt");
m=0;
n=0;
while((c=getc(f)) != EOF)
{
if(c==' ')
{
p[m][n]=0;
n++;
}
else if(c=='^')
{
pa[m][n]=5;
n++;
}
else if(c=='*')
{
p[m][n]=1;
n++;
}
else if(c=='#')
{
p[m][n]=-1;
m++;
n=0;
}
}
コードのこのブロックは私のtxtファイルによると、私のマトリックスを作成しています。これは、私のプロジェクトでは、後で使用する行列を初期化するステップです。
私の行列が作成された後、私は同じように、私のマトリクス中の様々な位置にいくつかの値を変更する必要があります。
p1m=0;
p1n=0;
p2m=19;
p2n=20;
p[p1m][p1n]=5;
p[p2m][p2n]=5;
しかし、私はこれを行う必要があり、関数内で、関数に私の行列を渡し、私の母国の中で私の行列を変えてください。
私はとしての機能にパラメータを設定しようとしました:
void myfunc(int* p[20][21])
やメインなどにアクセスして:
(myfunc &p[20][21])
それとも
void myfunc(int** p[20][21])
しかし、私は、私の推測正しい方法でそれをやっていません。
はい、いくつかの行列要素に新しい値を代入していますが、myfunc(p20)[21]のようにmain関数を呼び出す関数でこれを行うと、 C. –
@CristiCimpean:あなたは 'myfunc(p);'を呼び出します。私はそれを編集させてください。 –
素敵です。今私は愚かな気がする。あなたがた両方に感謝します。 –