Rainbow Temat założony przez niniejszego użytkownika |
Ograniczenia tablic wielowymiarowych » 2017-03-04 22:33:29 Wie ktoś może czy tablica wielowymiarowa przywołana przez int może mieć ograniczenia dotyczące ilości komórek? Bo używałam już dwuwymiarowych i trójwymiarowych tablic w kodach, które nadają im podaną przez użytkownika liczbę parametrów i powiem szczerze, nie wiem czy robię coś źle, ale 125 komórek wydaje się być magiczną liczbą, przy której coś się psuje, największa dwuwymiarowa, która nie wykazywała problemów to 11x11, a trójwymiarowa zaczęła pokazywać bardzo dziwne wyniki przy 5x5x5 (już nie mówiąc o 10x10x10, bo wtedy program przestawał w ogóle odpowiadać). Zatem, wie ktoś co to może oznaczać i czy jest jakiś sposób, aby można było tworzyć większe tabele wielowymiarowe bez błędów?
I jeszcze jedno, nie do końca jeszcze rozumiem podział tematów na tym forum, więc jeśli powinien się ten temat znajdować gdzie indziej, to proszę o przeniesienie. |
|
michal11 |
» 2017-03-04 22:58:38 Zły kod.
Normalnie nawet 1 mln intów w tablicy nie powinien być problemem. |
|
Rainbow Temat założony przez niniejszego użytkownika |
» 2017-03-04 23:22:02 W takim razie, jeśli można się spytać, jest coś źle z tym fragmentem kodu? int wysokosc, niskosc, sredniosc; cout << "Podaj wysokosc:" << endl; cin >> wysokosc; cout << "Podaj szerokosc:" << endl; cin >> niskosc; cout << "Podaj glebokosc:" << endl; cin >> sredniosc; int tablica[ wysokosc ][ niskosc ][ sredniosc ]; srand( time( NULL ) ); for( int i = 0; i <= wysokosc; ++i ) { for( int j = 0; j <= niskosc; ++j ) { for( int k = 0; k <= niskosc; ++k ) { tablica[ i ][ j ][ k ] =( rand() % 10 ); } } }
|
|
Rainbow Temat założony przez niniejszego użytkownika |
» 2017-03-04 23:27:13 Możliwe też, że to przy wyświetlaniu dopiero coś jest nie tak, ale strona mi w ogóle nie pozwala wysłać tego kodu, więc niestety chyba nie wkleję... |
|
maly7 |
» 2017-03-04 23:28:50 To jest tablica statyczna, nie możesz ustawiać jej rozmiaru za pomocą zmiennej. Możesz wykorzystać np. const, #define lub tablicę dynamiczną. |
|
mateczek |
» 2017-03-04 23:34:30 raz tablice statyczne deklaruje się jeśli ich rozmiar jest znany w czasie kompilacji dwa for( int i = 0; i <= wysokosc; ++i ) ten kod wychodzi poza zakres!!! tablice indeksujemy od zera do (rozmiar-1) A trzy dlaczego lubisz sobie komplikować życie durnymi nazwami. niskość, średniość. Napisz sobie kod rotujący elementy po obwodzie tak nazwanej tablicy!!! |
|
Rainbow Temat założony przez niniejszego użytkownika |
» 2017-03-04 23:37:20 Co do tego fora, to wygląda on tak, bo jest jeszcze pozostałością z kodu tablicy dwuwymiarowej, gdzie kiedy było "i<wysokosc" zamiast "i<=wysokosc" to ostatni wiersz tabelki miał losowe liczby, ale nie wszystkie były jednocyfrowe, a ten znak równości to naprawił. Tak szczerze mówiąc, to nie do końca to jeszcze rozumiem... |
|
mateczek |
» 2017-03-04 23:41:00 http://cpp0x.pl/forum/temat/?id=24770#include <iostream> using namespace std; int main() { int ** tablica2d; int ileWierszy, ileKolumn; cin >> ileWierszy >> ileKolumn; tablica2d = new int *[ ileWierszy ]; for( int i = 0; i < ileKolumn; i++ ) { tablica2d[ i ] = new int[ ileKolumn ]; } for( int i = 0; i < ileWierszy; i++ ) { for( int j = 0; j < ileKolumn; j++ ) { tablica2d[ i ][ j ] = i * ileKolumn + j; } } for( int i = 0; i < ileWierszy; i++ ) { for( int j = 0; j < ileKolumn; j++ ) { cout << tablica2d[ i ][ j ] << " "; } cout << endl; } } |
|
« 1 » 2 |