[C++]Tablice dwuwymiarowe - dynamiczna alokacja pamięci
Ostatnio zmodyfikowano 2015-08-29 12:57
Frish Temat założony przez niniejszego użytkownika |
[C++]Tablice dwuwymiarowe - dynamiczna alokacja pamięci » 2015-08-28 12:56:19 Witam w taki sposób zaalokowałem miejsce w pamięci na tablicę 3x5. #include <iostream>
int main() { int( * tab_w )[ 5 ]; tab_w = new int[ 3 ][ 5 ]; }
...niestety próbowałem ale nie wychodzi mi wpisanie do tablicy wartości. Proszę o wytłumaczenie w jaki sposób to sprawnie zrobić poprzez pętlę for(chciałem uzyskać to poruszając się po tablicy wskaźnikiem) |
|
darko202 |
» 2015-08-28 13:13:30 |
|
Frish Temat założony przez niniejszego użytkownika |
» 2015-08-28 13:20:45 Wiesz po to pisze na forum, żeby to było użyteczne dla wszystkich nie tylko dla mnie i myślałem że ktoś potrafi to wytłumaczyć. Podałeś mi odnośniki ale właśnie tam nie do końca jest to co chciałem uzyskać bo z klasami jeszcze otrzaskany nie jestem dobrze a później jest dostęp tablicowy wytłumaczony. Potrzebuje pomocy więc pytam ponieważ nie potrafię tego zrobić. Chciałem za pomocą wskaźnika poruszać się po tej tablicy ale nie umiem tego zapisać(dostęp przez zapis tablicowy potrafię uzyskać ale potrzebuje się dowiedzieć jak wskaźnikiem to zrobić). |
|
darko202 |
» 2015-08-28 13:43:13 nie rozumiem krytyki :( pod pierwszym linkiem jest np. int rx, ry, ** tab; int main() { cout << "Podaj ilosc wierszy:"; cin >> ry; tab = new int *[ ry ]; for( int i = 0; i < ry; i++ ) { cout << "Podaj ilosc kolumn:"; cin >> rx; tab[ i ] = new int[ rx ]; for( int x = 0; x < rx; x++ ) { tab[ i ][ x ] = 1; cout << tab[ i ][ x ] << " "; } cout << endl; } for( int i = 0; i < ry; i++ ) delete[] tab[ i ]; delete[] tab; system( "PAUSE" ); return EXIT_SUCCESS; }
trochę cierpliwości w czytaniu :) |
|
Frish Temat założony przez niniejszego użytkownika |
» 2015-08-28 13:48:33 Przepraszam jeżeli tak to odebrałeś, nie krytykowałem. Pod linkiem faktycznie jest taki kod, przepraszam moja nieuwaga. Mam pytanie w związku ze sposobem w który ja zaalokowałem pamięć na tablice, czy tutaj można również poruszać się po tej tablicy przez wskaźnik? |
|
darko202 |
» 2015-08-28 14:01:16 pewnie wiesz, że "tablica sama w sobie jest wskaźnikiem na pierwszy element tablicy" nie zmienia się to dla tablic wielowymiarowych można takim wskaźnikiem przechodzić przez kolejne elementy poruszałeś już chyba ten problem w http://cpp0x.pl/forum/temat/?id=20665 |
|
Frish Temat założony przez niniejszego użytkownika |
» 2015-08-28 14:10:42 Tak masz rację poruszyłem tam ten problem i wszystko mi się tam rozjaśniło, ale tutaj przy alokacji miejsca gubię się i nie wiem jak wpisać do tablicy elementy. Problem polega na tym, że próbowałem w podobny sposób i gdzieś popełniam błąd. Widocznie czegoś ze wskaźnikiem do wskaźnika jeszcze nie zrozumiałem.
dziękuję za pomoc:) |
|
darko202 |
» 2015-08-28 14:57:38 >>Problem polega na tym, że próbowałem w podobny sposób i gdzieś popełniam błąd. int( * tab_w )[ 5 ]; // deklarujesz tablicę 5 wskaźników
tab_w[3] = ? np. 0x0477845EF - adres
tab_w = new int[ 3 ][ 5 ]; //rezerwacja pamięci na tablicę 3x5
sprawdź : tab_w[3][1] = ? *tab_w[3][1] = ?
|
|
« 1 » 2 |