Dwuwymiarowa tablica dynamiczna - program się wiesza przy wpisywaniu danych

0

Plansza.h:

 
...
class Plansza {
public:
    Plansza(int, int);
    ...
    void save(int, int, char);
    ...

private:
    int width;
    int height;
    char **tab;
};

Plansza.cpp:

...
Plansza::Plansza(int width, int height) {
    this->width = width;
    this->height = height;

    char **tab = new char*[width];
    for (int i = 0; i < width; i++) {
        tab[i] = new char[height];
    }
}
...
void Image::save(int width, int height, char v) {
    tab[width][height]=v;
}
 

main.cpp:

 
#include <iostream>
#include "Plansza.h"
using namespace std;
int main()
{
    Plansza qwe(10,15);
    qwe.save(2,1,'8');
    cout << qwe.read(2,1);
    return 0;
}

Wstawiłem sobie couty na początku i na końcu każdej funkcji, żeby sprawdzić gdzie się program zawiesza i wyświetliło tylko początek, koniec konstruktora i początek funkcji save, więc wychodzi na to, że w niej program się wiesza, ale nie wiem czy źle jest utworzona tablica dynamiczna czy przypisanie czy co. Byłbym wdzięczny za pomoc.

0

Z funkcją read jest ten sam problem, więc program się wysypuję przez odwołanie tab[a][b]... Ale co z tym zrobić to nie mam pojęcia.

Problem rozwiązany

Powinno być:

tab = new char*[width];

w konstruktorze, a nie char *tab = new char[width];

1 użytkowników online, w tym zalogowanych: 0, gości: 1