int x, y, z; //zmienne mówiące o ilości komórek w wymiarze
Żeby stworzyć tablice 3-wymiarową przydzielona dynamicznie musimy zadeklarować taki wskaźnik:
int ***wsk;
Teraz przydzielimy mu dynamicznie pamięć:
wsk = new int **[x];
To jeszcze nie koniec. Teraz powstała nam tablica wskaźników na wskaźnik o rozmiarze x.
Musimy teraz w pętli dynamicznie przydzielić pamięć w tej tablicy. Robimy to tak:
for(int i=0; i<x; i++)
{
wsk[i] = new int * [y];
}
Teraz mamy tablicę wskaźników 2-wymiarową o rozmiarze x , y.
Trzeci krok wygląda tak:
for(int i=0; i<x; i++)
{
for(int j=0; j<y; j++)
{
wsk[i][j] = new int [z];
}
}
Mamy tablicę 3 wymiarową int'ów o rozmiarze x , y , z.
Teraz trzeba tą pamięć zwolnić.
Zwalnianie wygląda następująco:
for(int i=0; i<x; i++)
{
for(int j=0; j<y; j++)
{
delete [] wsk[i][j];
}
}
for(int i=0; i<x; i++)
{
delete [] wsk[i];
}
delete [] wsk;