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

dynamiczna alokacja pamięci w konstruktorze, pobieranie wartości z tablicy dwuwymiarowej

Ostatnio zmodyfikowano 2017-05-01 14:00
Autor Wiadomość
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:
C/C++
#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 ]; //tu podejrzewam blad
    }
    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
P-160635
michal11
» 2017-05-01 14:00:37
Robisz lokalną tablicę w konstruktorze a nie przypisujesz do zmiennej składowej.
P-160636
« 1 »
  Strona 1 z 1