• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Tablice dynamiczne c++

Object Storage Arubacloud
+1 głos
342 wizyt
pytanie zadane 23 stycznia 2022 w C i C++ przez Doge Gaduła (3,370 p.)
Witam, do czego służą tablice dynamiczne w c++? Czym różnią się od statycznych?

1 odpowiedź

0 głosów
odpowiedź 23 stycznia 2022 przez Wiciorny Ekspert (270,110 p.)

Rozróżnia się dwa typy tablicstatyczne - 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:]}

komentarz 23 stycznia 2022 przez Oscar Nałogowiec (29,310 p.)
Dodałbym, że zwykle wielkość stosu jest ograniczona i należy unikać tworzenia dużych tablic lokalnych. Ile to jest dużo, to zależy od środowiska. Ograniczenie oczywiście dotyczy ogólnie zmiennych lokalnych, nie tylko tablic, ale tablice najłatwiej uczynić "wielkimi".

Podobne pytania

0 głosów
2 odpowiedzi 428 wizyt
pytanie zadane 11 września 2020 w C i C++ przez Kytrap Początkujący (390 p.)
0 głosów
1 odpowiedź 197 wizyt
0 głosów
2 odpowiedzi 1,662 wizyt
pytanie zadane 12 marca 2020 w C i C++ przez Szymczak_7 Obywatel (1,860 p.)

92,572 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...