• 締切済み

C++ の多次元配列なんですが

int i,j; int (*p)[2][3]; int *x; int a[2][3] = {{1,2,3},{4,5,6}}; p = &a; x = &a[0][0]; for ( i = 0; i < 2; i++ ) { for ( j = 0; j < 3; j++) { printf (" %d", (*p)[i][j]); } } printf (" | "); for ( i = 0; i < 2; i++ ) { for ( j = 0; j < 3; j++) { printf (" %d", *(x + ( i * 3 + j )) ); } } printf (" | "); for ( i = 0; i < 6; i++ ) { printf (" %d", *(x + i) ); } これで大丈夫でしょか?

みんなの回答

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

何をもって「大丈夫」といえばいいのか、わかりません。 また、そのソースコードは、ヘッダーファイルのインクルードや main関数がないため、そのままでは実行できません。 仮に、コードに修正を施して実行できるようにしたとして、 わざわざ >*(x + ( i * 3 + j )) >*(x + i) と書かなくても、もっと簡単に x[i * 3 + j] x[i] と書けます。

関連するQ&A

専門家に質問してみよう