Ostatnio było o przesyłaniu tablic do funkcji, a dziś o ich tworzeniu – niezbyt chronologicznie, przekornie:)
Tablice dynamiczne – czyli takie, gdzie rozmiar tablicy zależy od zmiennych – nie jest ustalany na sztywno podczas pisania aplikacji, lecz ustawiany dopiero gdy np. użytkownik poda, ile danych chce przechowywać w tablicy. Całość zaprezentuję za pomocą przykładów:
Tworzenie i usuwanie tablicy jednowymiarowej:
int *someDynamicArray; int ile=3; someDynamicArray = new int[ile]; delete [] someDynamicArray;
Tworzenie i usuwanie tablicy dwuwymiarowej:
int **dynamicArray2d = new int *[3]; for (int i = 0; i < 3; ++i ) { dynamicArray2d[i] = new int [2]; } for (int i=0; i < 3; i++) { delete [] dynamicArray2d[i]; } delete [] dynamicArray2d;
Tablice wyższych wymiarów (stosowane np. dla zaimplementowania tablicy trójwymiarowych wektorów) tworzy się analogicznie jak tablice drugiego rzędu.
Zaletą tablic dynamicznych jest także możliwość zaalokowania większej ilości pamięci niż w przypadku tablicy statycznej!