Tablice dynamiczne
Tablice dynamiczne to struktury danych, które pozwalają na przechowywanie elementów o różnych typach i dynamiczną alokację pamięci w trakcie działania programu. W odróżnieniu od tablic statycznych, które mają stałą liczbę elementów i rozmiar określony w trakcie kompilacji, tablice dynamiczne pozwalają na tworzenie tablic o zmiennej liczbie elementów i rozmiarze.
Aby zadeklarować tablicę dynamiczną
, musimy określić typ danych, który będzie przechowywany w tablicy, oraz jej rozmiar. Deklaracja tablicy dynamicznej wygląda następująco:
typ_danych *nazwa_tablicy = new typ_danych[rozmiar];
aby utworzyć tablicę dynamiczną przechowującą 10 liczb całkowitych, możemy użyć następującej deklaracji:
int *tablica_dynamiczna = new int[10];
Aby uzyskać dostęp do elementów tablicy dynamicznej, podajemy indeks elementu w nawiasach kwadratowych po nazwie tablicy. Na przykład, aby przypisać wartość 5 do elementu o indeksie 3, możemy użyć poniższego kodu:
tablica_dynamiczna[3] = 5;
Możemy również iterować po elementach tablicy dynamicznej za pomocą pętli. Przykładowy kod, który wyświetla wszystkie elementy tablicy, wygląda następująco:
#include <iostream>
using namespace std;
int main() {
int rozmiar = 5;
int* tablica = new int[rozmiar]; // alokacja pamięci na tablicę dynamiczną
for (int i = 0; i < rozmiar; i++) {
tablica[i] = i + 1; // inicjalizacja tablicy
}
cout << "Wartość elementu 3: " << tablica[2] << endl; // wyświetla wartość elementu o indeksie 3
delete[] tablica; // zwolnienie zaalokowanej pamięci
return 0;
}
Aby zwolnić zaalokowaną pamięć dla tablicy dynamicznej, musimy użyć operatora delete:
delete[] tablica_dynamiczna;
Alokacja pamięci dla tablicy dynamicznej w C++ odbywa się za pomocą operatora new, który przydziela odpowiednią ilość pamięci w czasie wykonania programu. Należy zauważyć, że alokacja pamięci musi zostać zwolniona w celu uniknięcia wycieków pamięci. Do tego celu używamy operatora delete.
Warto zauważyć, że w przypadku tablic dynamicznych, które nie zostały zwolnione, następuje wyciek pamięci, co może prowadzić do problemów z wydajnością i stabilnością programu.