Tablice umożliwiają przechowywanie danych tego samego typu jako jeden ciąg (łańcuch) danych. Rozróżnia się dwa typy tablic: statyczne - czyli takie, których rozmiaru podczas działania programu nie da się zmienić; oraz dynamiczne - czyli takie, którym pamięć jest przypisywana w trakcie działania programu.
Tablice statyczne
Deklarowanie tablic statycznych może wyglądać następująco:
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
}
Warto zwrócić uwagę na to, że indeksowanie tablic zaczyna się od 0.
Ciągi znaków również można deklarować w ten sam sposób (ponieważ są one również tablicami):
char str[]="jakiś tekst";
Tablice dynamiczne
Zaletą tablic statycznych jest łatwość ich użycia, natomiast wielką wadą jest brak możliwości sterowania ich rozmiarem, z tego też względu potrzebne są narzędzia umożliwiające dynamiczne deklarowanie tablic. W C++ narzędziem takim jest operator new, który przypisuje do zmiennej wskaźnikowej blok pamięci o określonych rozmiarach. Z kolei operator delete i delete[] umożliwia zwalnianie tejże pamięci.
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
}