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 » |