2017-01-12 7 views
0

プログラムは実行されるように実行されていません。私が要素を入力するとき、それは起こるべきではない12以上の要素が必要です。コードに間違いがあるかどうか教えてください。私は3つの2D配列を別々に出力しようとしています。なぜプログラムが適切な方法で実行されていないのですか?

#include <iostream> 
using namespace std; 
int main() 
{ 
    int i, j, k; 
    int abc[2][2][3]; // three 2D arrays declared . 

    for (k = 0; k <= 2; k++) { 
     for (i = 0; i <= 1; i++) { 
      for (j = 0; j <= 1; j++) { 
       cin >> *(*(*(abc + k) + i) + j); // entering the element abc[i][j][k]. 
      } 
     } 
    } 

    // REQUIRED 3D ARRAY . 
    for (k = 0; k <= 2; k++) { 
     for (i = 0; i <= 1; i++) { 
      for (j = 0; j <= 1; j++) { 
       cout << *(*(*(abc + k) + i) + j) << "  "; 
      } // respective 2d arrays are printed . 
      cout << endl; 
     } 
     cout << endl; 
    } 
} 
+5

*それは*実行すべきであるように、プログラムが実行されていない - はい、それはある - プログラムが正確にやっています何を書きましたか。コード*で何か問題があれば – PaulMcKenzie

+0

*教えてください - あなたは私に言うが、それに何か問題はありますか?あなたはそれが何をすることを期待していますか?代わりに何をしますか? – EJoshuaS

答えて

1

*(*(*(abc + k) + i) + j)abc[k][i][j]である。

あなたは(あなたが最も可能性の高いインデックス変数を上書きしている)定義されていない配列の外側をインデックスしています。あなたのループの正しいであろう -

3つの2×2配列の配列はabc[3][2][2]あろう。

(あなたは配列で作業しているとき、ポインタ演算を使用しないでください、それが唯一の混乱を招くのです。)

関連する問題