Cześć, piszę sobie klasę do obsługi działań na macierzach:
class Macierz
{
public:
Macierz(int a, int b);
Macierz(int a, int b, int c);
~Macierz();
void wypisz(void) const;
void transponuj(void);
private:
int **tab;
int x;
int y;
};
I chcę napisać metodę 'transponuj' która zrobi transponowanie macierzy (wiersz to kolumna, a kolumn to wiersz).
void Macierz::transponuj(void)
{
int **tab_trans = new int *[y];
for (int k = 0; k < y; ++k)
{
tab[k] = new int[x];
}
for (int i = 0; i < y; i++)
{
for (int j = 0; j < x; j++)
tab_trans[i][j] = tab[j][i]; //tu wywala!
}
tab = tab_trans;
swap(x, y);
//tu jeszcze zwolnienie pamięci dla tab_trans
}
W komentarzu zaznaczyłem miejsce w którym program sie wysypuje, mógłby ktoś spojrzeć i dać wskazówkę co jest nie tak?