Aby utworzyć dynamicznie tablicę 3D z liczb całkowitych, lepiej najpierw zrozumieć tablice 1D i 2D.
1D tablicę: Można to zrobić bardzo łatwo przez
const int MAX_SIZE=128;
int *arr1D = new int[MAX_SIZE];
Tutaj tworzysz INT-wskaźnik, który będzie wskazywał na fragmencie pamięci, gdzie mogą być przechowywane całkowitymi.
Tablica 2D: Możesz użyć rozwiązania powyższej tablicy 1D do utworzenia tablicy 2D. Najpierw utwórz wskaźnik, który powinien wskazywać na blok pamięci, w którym przechowywane są tylko inne wskaźniki całkowite, które ostatecznie wskazują na rzeczywiste dane. Ponieważ nasz pierwszy wskaźnik wskazuje na tablicę wskaźników, zostanie to nazwane jako wskaźnik do wskaźnika (podwójny wskaźnik).
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 Array: To jest to, co chcesz robić. Tutaj możesz wypróbować oba schematy użyte w powyższych dwóch przypadkach. Zastosuj tę samą logikę co tablica 2D. Omawiany diagram wyjaśnia wszystko. Pierwsza tablica będzie wskaźnikiem do wskaźnika do wskaźnika (int *** - ponieważ wskazuje na podwójne wskaźniki). Rozwiązanie jest następujące:
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;
}
}
}
Możesz również użyć tej metody dla tablic N-Dimension z N-1 dla pętli. –
może wspomnieć o odpowiedniej funkcji usuwania również .. – stijn
@Manish Shukla W kodzie 3D Array, który z X, Y i Z oznacza szerokość, wysokość i głębokość? – Mariya