Pour créer dynamiquement un tableau 3D d'entiers, mieux vaut d'abord comprendre les tableaux 1D et 2D.
tableau 1D: Vous pouvez le faire très facilement par
const int MAX_SIZE=128;
int *arr1D = new int[MAX_SIZE];
Ici, nous créons un pointeur int qui pointera vers un morceau de mémoire où les entiers peuvent être stockés.
Tableau 2D: Vous pouvez utiliser la solution du tableau 1D ci-dessus pour créer un tableau 2D. Tout d'abord, créez un pointeur qui doit pointer vers un bloc de mémoire où sont uniquement stockés d'autres pointeurs entiers qui pointent finalement vers des données réelles. Puisque notre premier pointeur pointe vers un tableau de pointeurs, cela sera appelé pointer-to-pointer (double pointeur).
const int HEIGHT=20;
const int WIDTH=20;
int **arr2D = new int*[WIDTH]; //create an array of int pointers (int*), that will point to
//data as described in 1D array.
for(int i = 0;i < WIDTH; i++){
arr2D[i] = new int[HEIGHT];
}
3D Tableau: Voici ce que vous voulez faire. Ici, vous pouvez essayer les deux schémas ci-dessus. Applique la même logique que le tableau 2D. Le diagramme en question explique tout. Le premier tableau sera pointer-pointer-vers-pointeur (int *** - puisqu'il pointe vers des pointeurs doubles). La solution est la suivante:
const int X=20;
const int Y=20;
const int z=20;
int ***arr3D = new int**[X];
for(int i =0; i<X; i++){
arr3D[i] = new int*[Y];
for(int j =0; j<Y; j++){
arr3D[i][j] = new int[Z];
for(int k = 0; k<Z;k++){
arr3D[i][j][k] = 0;
}
}
}
Vous pouvez également utiliser cette méthode pour les tableaux N-Dimension avec N-1 pour les boucles. –
peut-être mentionner la fonctionnalité de suppression correspondante ainsi .. – stijn
@Manish Shukla Dans le code 3D Array qui de X, Y et Z représente Largeur, hauteur et profondeur ?? – Mariya