Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Tworzenie dynamicznych tablic wielowymiarowych

Ostatnio zmodyfikowano 2013-11-09 22:43
Autor Wiadomość
janiu
Temat założony przez niniejszego użytkownika
Tworzenie dynamicznych tablic wielowymiarowych
» 2013-11-09 18:09:50
Witam !
Potrafie stworzyć dwuwymiarową tablice dynamiczną ale tylko kwadratową:
C/C++
#include<iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;
    int ** tablica = new int *[ n ];
    for( int j = 0; j < n; j++ )
    {
        tablica[ j ] = new int[ n ];
    }
    for( int i = 0; i < n; i++ ) {
        for( int j = 0; j < n; j++ ) {
            tablica[ i ][ j ] = rand();
        }
    }
   
   
    for( int i = 0; i < n; i++ )
    {
        for( int j = 0; j < n; j++ )
             cout << tablica[ i ][ j ] << endl;
       
    }


I tutaj moje pytanie: Jak stworzyć dynamiczną tablice dwuwymiarową o innej ilości wierszy i kolumn ?



[/i][/i]
P-95813
pekfos
» 2013-11-09 18:13:26
W drugim wymiarze alokuj inną ilość elementów.
P-95814
janiu
Temat założony przez niniejszego użytkownika
» 2013-11-09 18:30:44
czyli w którym dokładnie momencie, bo mi coś nie wychodzi ?
P-95815
pekfos
» 2013-11-09 19:11:05
A rozumiesz, co ten kod robi?
P-95818
janiu
Temat założony przez niniejszego użytkownika
» 2013-11-09 19:18:43
tak nie do końca
P-95819
janiu
Temat założony przez niniejszego użytkownika
» 2013-11-09 22:32:04
Przy pomocy wujka google już w miarę ogarnąłem jak się to tworzy lecz teraz przy tym programie wyskakuje mi błąd.

C/C++
#include<iostream>
using namespace std;

int main()
{
   
    int rzedy;
    cout << "Podaj ilosc rzedy=  ";
    cin >> rzedy;
   
    int kolumny;
    cout << "Podaj ilosc kolumn=  ";
    cin >> kolumny;
   
   
    int ** tablica = new int *[ rzedy ]; //deklaracja
    for( int i = 0; i < kolumny; i++ )
    {
        tablica[ i ] = new int[ kolumny ];
    }
   
    for( int i = 0; i < rzedy; i++ ) //inicjalizacja
    {
        for( int j = 0; j < kolumny; j++ )
        {
            tablica[ i ][ j ] = rand();
        }
    }
   
   
    for( int i = 0; i < rzedy; i++ ) //wyswietlenie
    {
        for( int j = 0; j < kolumny; j++ )
        {
            cout << tablica[ i ][ j ] << "   ";
        }
        cout << endl;
    }
   
    system( "pause" );
}



Gdy liczba rzędów jest większa od liczby kolumn następuje błąd. Dlaczego ?
P-95844
SeaMonster131
» 2013-11-09 22:36:31
C/C++
int ** tablica = new int *[ rzedy ]; //deklaracja
for( int i = 0; i < kolumny; i++ )
{
    tablica[ i ] = new int[ kolumny ];
}
Zły warunek.
P-95845
janiu
Temat założony przez niniejszego użytkownika
» 2013-11-09 22:43:19
okej dzieki wielkie
P-95847
« 1 »
  Strona 1 z 1