dynamiczna alokacja pamięci w konstruktorze, pobieranie wartości z tablicy dwuwymiarowej 
Ostatnio zmodyfikowano 2017-05-01 14:00
andrzejek97 Temat założony przez niniejszego użytkownika  | 
dynamiczna alokacja pamięci w konstruktorze, pobieranie wartości z tablicy dwuwymiarowej  » 2017-05-01 13:23:06 Witam, otóż stworzyłem klasę w której konstruktorze dynamicznie alokuję pamięć dla tablicy dwuwymiarowej, problem w tym, że program się wysypuje, gdy próbuję pobrać konkretny element za pomocą metody get, w dynamicznym alokowaniu pamięci nie widzę błędu, więc może źle przekazuje argumenty, wkleję kod: #include<iostream> using namespace std; class Matrix {     int w, k;     int ** tab;     static int ObjectCount; public:     Matrix( int _w, int _k )         : w( _w )          , k( _k )     {                  int ** tab = new int *[ w ];         for( int i = 0; i < w; i++ )              tab[ i ] = new int[ k ];                  ObjectCount++;     }          ~Matrix()     {         for( int i = 0; i < w; i++ )              delete[] tab[ i ];                  delete[] tab;         tab = NULL;         ObjectCount--;     }          int get( int ww, int kk )     {         return tab[ ww ][ kk ];      }     void set( int ww, int kk, int value )     {         tab[ ww ][ kk ] = value;     }     static int getCount()     {         return ObjectCount;     } }; int Matrix::ObjectCount = 0;
 
  int main() {     Matrix m1( 4, 4 );     m1.get( 2, 2 );     return 0; }
  dodam tylko, że gdy tylko tworzę obiekt to program działa normalnie, wysypuje się natomiast przy odwoływaniu do metod get lub set, oraz przy tworzeniu więcej niż jednego obiektu  | 
 | 
michal11  | 
» 2017-05-01 14:00:37 Robisz lokalną tablicę w konstruktorze a nie przypisujesz do zmiennej składowej.  | 
 | 
|  « 1 »  |