Tablice dynamiczne
Tablice statyczne muszą mieć zadeklarowany stały rozmiar. Bardzo często spotykamy się z sytuacją, kiedy nie jest znany rozmiar tablicy (tzn. np. jest zmienną wczytywaną w programie). Wtedy musimy użyć zmiennych dynamicznych. Podczas deklaracji tablicy deklarujemy tylko wskaźnik do tablicy – czyli adres do jej pierwszego elementu. Dopiero później przydzielamy do wskaźnika potrzebną ilość pamięci, posługując się operatorem new. Oto kawałek programu zawierający deklarację zmiennej dynamicznej o nazwie tab, będącą tablicą jednowymairową n elementów typu integer:
int *tab, n;
cout<<"Podaj rozmiar tablicy"<<endl;
cin>>n;
tablica = new int [n]; //podajemy typ elementu i jego rozmiar
......
.......
........
delete [ ] tab; kasujemy tablicę, jeśli jest niepotrzebna (zwalniamy pamięć)
A tak będzie wyglądała deklaracja i przydział pamięci dla tablicy dwuwymiarowej:
#include <iostream.h>
#include <stdlib.h>
int main()
{
randomize();
int **wsk;
int i, j, n1=3000, n2=3000;
wsk=new int*[n1];
for (i=0; i<n1; i++)
wsk[i]=new int[n2];
for (i=0; i<n1; i++)
{
for (j=0; j<n2; j++)
{
wsk[i][j]=rand()%10;
cout<<wsk[i][j]<<" ";
}
cout<<endl;
}
system("PAUSE");
return 0;
}