Rozróżnia się dwa typy tablic: statyczne - czyli takie, których rozmiaru podczas działania programu nie da się zmienić;
dynamiczne - czyli takie, którym pamięć jest przypisywana w trakcie działania programu.
Statyczne tablice :
int array1[]={10,20,30,40,50}; // deklaracja z tablicy statycznej z jednoczesnym ustawieniem jej wartości
int array2[5]; // deklaracja tablicy statycznej 5 elementowej
for(int i = 0; i < 5; i ++){ // w pętli od 0 do 4
array2[i] = i * 10 + 10; // ustawiam kolejne wartości tablicy statycznej array2 względem indeksu i
}
dynamiczne tablice :
cout<<"Podaj rozmiar tablicy:";
int arraySize = 0;
cin>>arraySize; // wczytywanie rozmiaru tablicy
int *array = 0; // wskaźnik tablicy dynamicznej
if(arraySize > 0 && arraySize < 100){
array = new int[arraySize]; // deklarowanie pamięci
for(int i = 0; i < arraySize; i++){ // w pętli
array[i] = i + 1; // wpisuję kolejne numery do tablicy
cour<<"array["<<i<<"]="<<array[i]<<"n"; // wypisywanie tablicy na ekranie
}
delete[] array; // zwalnianie przypisanej pamięci
array = 0; // dzięki temu przypisaniu będzie można stwierdzić, że pamięć tej zmiennej została zwolniona
}
Lokalne tablice są tworzone na stosie i mają Automatyczny czas przechowywania -- nie trzeba ręcznie zarządzać pamięcią, ale są one niszczone, gdy kończy się funkcja, w której się znajdują. Muszą mieć stały rozmiar:
int foo[10];
Tablice utworzone za pomocą operator new[] mają dynamiczny czas przechowywania i są przechowywane na stercie (technicznie "wolny magazyn"). Mogą mieć dowolny rozmiar, ale musisz je przydzielić i uwolnić samodzielnie, ponieważ nie są częścią ramki stosu:]}