Iは、関数で次のコードがある場合:アクセス要素
int A[5][5];
int i; int j;
for(i=0;i<5;i++){
for(j=0;j<5;j++){
A[i][j]=i+j;
printf("%d\n", A[i][j]);
}
}
これは単に各インデックスの和を出力します。私が知りたいのは、静的配列の各インデックスに、動的配列と同様の方法でアクセスできるかどうかです。したがって、たとえば、私がアクセスしたい場合は、[2] [2]、私が言うことができます。
*(A+(2*5+2)*sizeof(int))?
私は静的に割り当てられた行列にいくつかの行列演算を実行したいと私は間接参照ダイナミック行列に使用される方法のように感じます私の目的のために一番うまくいくでしょう。何か案は?ありがとうございました。
あなたが主張しているように、その配列は静的ではありません。 –
逆参照されるポインタがintへのポインタの場合、sizeof()による乗算は不要です。ポインタの指し示すタイプのサイズによる算術ステップ。 – dmckee
@dmckeeだけでなく、それは間違っている必要はありません。まず、彼はそれが期待していることをしません、次に、あなたは配列の境界を越えて、未定義の動作に入ることができます。 –