简单的3D阵列C++

JOG*_*ign 14 c++ arrays

我是C++的新手,我正在尝试创建一个简单的静态3维数组,然后在控制台中打印出来.

这是我目前的代码:

#include <iostream>
using namespace std;

int main()
{
  const int MAX_ROW = 2;
  const int MAX_COL = 2;
  const int MAX_HEIGHT = 2;

  int MyArray[MAX_ROW][MAX_COL][MAX_HEIGHT] = { {1,1},
                           {2,10},
                           {3,15},
                           {4,20},
                           {5,25},
                           {6,30},
                           {7,35},
                           {8,40} };

  for(int Row = 0; Row < MAX_ROW; ++Row)
  {
   for(int Col =0; Col < MAX_COL; ++Col)
   {
    for(int Height = 0; Height < MAX_HEIGHT; ++Height)
     {
      cout << "Integer["<< Row << "][" << Col << "][" << Height << "] = " << MyArray[MAX_ROW][MAX_COL][MAX_HEIGHT] << endl;
     }
    }
   }



  return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我编译编译器时通知我说明 "error: too many initializers for ‘int [2][2][2]"

其他问题使用了我不熟悉的指针.

先感谢您!

编辑:语法错误,所以我用正确的相应代码更正了它,如下所示.现在在程序的输出中,每个数组空间都是32767.一个完整的整数空间而不是指定的值.有人可以在答案中解决这个问题吗?除了初始化数组之外,我没有更改任何代码.

Jon*_*art 9

你的语法错了.

int a[2][2][3] = {     // Initialize entire variable
  {                    //   1 of 2 (leftmost array)
    { 1, 2, 3 },       //     1 of 2 (inner array)
    { 4, 5, 6 },       //     2 of 2 (inner array)
  },

  {                    // 2 of 2 (leftmost array)
    { 7, 8, 9 },       //     1 of 2 (inner array)
    { 10, 11, 12 },    //     2 of 2 (inner array)
  },
}
Run Code Online (Sandbox Code Playgroud)

你所展示的将是一个int [8][2].


Val*_*ade 6

按照以下更改代码.您可以看到有两个组包含两个元组,每个元组都有两个元素.

 int MyArray[MAX_ROW][MAX_COL][MAX_HEIGHT] = { 
                                               { {1,1},{2,10} }, 
                                               { {4,20},{5,25} } 
                                             };
Run Code Online (Sandbox Code Playgroud)

请看下面的示例,以使其更清晰

  int arr[2][3][4] = { 
                       { {1, 2, 3, 4}, {1, 2, 3, 4}, {1, 2, 3, 4} },
                       { {1, 2, 3, 4}, {1, 2, 3, 4}, {1, 2, 3, 4} } 
                     };
Run Code Online (Sandbox Code Playgroud)

如您所见,有两组,每组包含三组,每组4个.