Simple 3D Array C ++
Je suis un débutant en C++ et je suis en train de créer un simple statique 3 Dimensions Tableau et ensuite l'imprimer dans la console.
Voici mon code actuel:
#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;
}
Quand je compile le compilateur m'avise indiquant "error: too many initializers for ‘int [2][2][2]"
D'autres questions ont utilisé des pointeurs dont je ne suis pas familier avec.
Vous en remercie d'avance!
Edit: La syntaxe est mauvaise, donc je l'ai corrigé avec le bon code correspondant comme réponse ci-dessous. Maintenant dans la sortie du programme de chaque ensemble de l'espace est de 32767. Un plein entier de l'espace au lieu de l'attribuer des valeurs. Quelqu'un peut-il traiter de cette question dans leur réponse? Je n'ai pas changé le code, sauf mon initialisation de la matrice.
source d'informationauteur JOG-Design
Vous devez vous connecter pour publier un commentaire.
Changer le code par la suite. Vous pouvez voir il y a 2 groupes contenant deux tuples ayant deux éléments.
Ont un coup d'oeil dans l'exemple suivant, afin de le rendre plus clair
Comme vous pouvez le voir, il y a deux groupes, chacun contenant trois groupes de 4 chiffres.
Votre syntaxe est incorrecte.
Ce que vous avez démontré, une
int [8][2]
.Votre déclarer un 2x2x2 tableau, mais en le définissant comme un 2x8 tableau.
Aussi, lorsque vous imprimez le contenu de votre tableau, vous utilisez MAX_* index à la place de vos variables de boucle.
vous tableau
MyArray[MAX_ROW][MAX_COL][MAX_HEIGHT]
seulement peut contenir 2*2*2=8 éléments,mais
a 16 éléments.
donc, il y a trop d'initialiseurs
En dehors de mauvaise initialisation de tableau comme d'autres l'ont souligné, vous avez également un erreur dans l'impression. Vous imprimez toujours le même élément qui n'existe même pas (ce qui est un comportement indéterminé).