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

Dynamiczna alokacja tablicy wielowymiarowej.

0 głosów
529 wizyt
pytanie zadane 23 sierpnia 2016 w C i C++ przez Rafał Gardian Początkujący (310 p.)

Gdy chcemy, aby ilość elementów tablicy jednowymiarowej określać podczas wykonywania programu stosujemy dynamiczną alokację tejże tablicy. Podobnie, gdy chcemy określić podczas wykonywania programu wymiar, który jest "najbardziej z lewej" w tablicy n-wymiarowej. Piszemy wtedy np.:

int (*tablica) [3][2];
tablica = new int [n][3][2]

Co zrobić, jednak, gdy chcemy, aby ilość elementów w kolejnych wymiarach również była określona dopiero podczas wykonywania programu? Z tego co wiem, napisać

int (*tablica) [2];
tablica = new int [n][m][2]

nie możemy. Co można by było zrobić?

1 odpowiedź

+3 głosów
odpowiedź 23 sierpnia 2016 przez draghan VIP (106,230 p.)
wybrane 23 sierpnia 2016 przez Rafał Gardian
 
Najlepsza
// tablica 2x3
int **tab;
tab = new int*[2];
for(int i = 0; i < 2; ++i)
  tab[i] = new int[3];

Oczywiście potem zwalniamy pamięć - w odwrotnej kolejności do alokowania:

for(int i = 0; i < 2; ++i)
  delete[] tab[i];

delete[] tab;

 

komentarz 23 sierpnia 2016 przez Rafał Gardian Początkujący (310 p.)
Chodziło mi wprawdzie o tablicę n x m, ale wystarczy wstawić to za 2 i 3 i otrzymujemy to co chciałem, tak więc WIELKIE DZIĘKI!
komentarz 23 sierpnia 2016 przez draghan VIP (106,230 p.)
Chciałem, żebyś nie dostał wszystkiego na tacy (chociaż i tak w tym wypadku to prawie gotowiec).

Szczerze mówiąc - gdybyś nie napisał swojego wstępu o próbach czy możliwościach definiowania tablic, to pytanie poszłoby do kosza z uwagi na trywialność (wystarczy wpisać w wyszukiwarkę hasło "dynamiczna tablica 2d c++" i już mamy mnóstwo materiałów, nawet w ojczystym języku). Ale, jako że pokazałeś swoje zainteresowanie tematem i że już coś działałeś w tym kierunku, to wrzuciłem Ci kawałek kodu.

Pozdrawiam, draghan
komentarz 23 sierpnia 2016 przez Rafał Gardian Początkujący (310 p.)
Tym bardziej dziękuję.
komentarz 23 sierpnia 2016 przez draghan VIP (106,230 p.)
Och, proszę proszę... Nawet rozumiesz moje stanowisko. Rzadko się zdarza w podobnej sytuacji.

Dostajesz ode mnie plusa, na zachętę. :) Miłego wieczoru. ;)
1
komentarz 23 sierpnia 2016 przez manjaro Nałogowiec (37,390 p.)
Szkoda tylko że google przestało działać i każdą pierdołę trzeba na forum pisać. Bo gdyby działało to pierwszy wynik zwraca dokładny opis zagadnienia o którym mowa

http://www.algorytm.edu.pl/tablice-w-c/tablice-wielowymiarowe.html
komentarz 23 sierpnia 2016 przez draghan VIP (106,230 p.)
Już o tym napisałem wyżej ale dzięki za przypomnienie, mam nadzieję że Rafał Gardian zapamięta hasło "wyszukiwarka przyjacielem". ;)
komentarz 23 sierpnia 2016 przez manjaro Nałogowiec (37,390 p.)
@draghan wybacz nie czytałem całego wątku.

Pozdrawiam

Podobne pytania

0 głosów
2 odpowiedzi 1,550 wizyt
pytanie zadane 3 lipca 2018 w C i C++ przez qlucha Obywatel (1,790 p.)
0 głosów
1 odpowiedź 661 wizyt
pytanie zadane 12 sierpnia 2016 w C i C++ przez niezalogowany
+1 głos
1 odpowiedź 451 wizyt
pytanie zadane 22 czerwca 2016 w C i C++ przez kistel66 Początkujący (370 p.)

93,605 zapytań

142,529 odpowiedzi

322,999 komentarzy

63,096 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

Kursy INF.02 i INF.03
...