I am a novice in C++ and I am trying to create a simple static 3 Dimensional Array and then print it out in console.
Here is my current code:
#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;
}
When I compile the compiler notifies me stating "error: too many initializers for ‘int [2][2][2]"
Other questions have used pointers which I am not familiar with.
Thank you in advance!
Edit: The syntax is wrong so I have corrected it with the correct corresponding code as answered below. Now in the output of the program each array space is 32767. A full integer space instead of the assigned values. Can anybody address this in their answer? I have not changed any code except my initialisation of the array.
Your syntax is wrong.
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)
},
}
What you've shown would be an int [8][2]
.
Change the code as per following. You can see there are 2 groups containing two tuples each having two elements in it.
int MyArray[MAX_ROW][MAX_COL][MAX_HEIGHT] = {
{ {1,1},{2,10} },
{ {4,20},{5,25} }
};
Have a look in following example to make it more clear
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} }
};
As you can see, there are two groups, each containing three groups of 4 numbers.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With