Błąd przy przeładowywaniu operatora dodawania

0

Witam
Mam jakąś tam klasę z macierzami. Macierze przechowuję w dynamicznej tablicy dwuwymiarowej typu double. Chciałbym móc sobie dodawać dwa obiekty tejże klasy, w tym celu przeciążyłem operator + w ten sposób:

macierz macierz::operator+(macierz &m)
{
    macierz tmp;
    for(int i=0; i<4; i++)
        for(int j=0; i<4; j++)
            tmp.macierz_tab[i][j] = macierz_tab[i][j] + m.macierz_tab[i][j];
    
    return tmp;
}

I jak tworzę sobie np trzeci obiekt w ten sposób: macierz macierz3 = macierz1 + macierz2; to niestety mi nie działa, tzn wyskakuje taki błąd:

Thread 1: EXC_BAD_ACCESS(code=1, adress=0x100200000000)

Co robię źle?
Pozdr.

zamiana znacznika <quote> na <code class="none"> - @furious programming

0

Jeśli odwołujesz się do macierz_tab[i][j] Twoje tmp to jesteś pewien, że te indeksy są w tablicy?

0

Dzięki wielkie! Aż mi głupio bo nie zauważyłem tego banalnego błędu w pętli. Co do tego:

poza tym takie sztywne ustalanie rozmiarów tablicy nie jest dobrym rozwiązaniem

Na razie wprowadzam tylko macierze 4x4, później będę się bawił w obsługę wszystkich pozostałych.
Pozdr

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