Witam. Piszę program obliczający macierz schodkową. Podczas kompilacji nie wyrzuca żadnych błędów, zaś podczas uruchamiania wyskakuje błąd "Naruszenie ochrony pamięci". Prawdopodobnie oznacza to, że gdzieś odwołuje się do pamięci, która nie istnieje. Męczę się nad tym już kupę czasu i nie mogę tego ogarnąć. Tutaj jest cały algorytm:
http://edu.i-lo.tarnow.pl/inf/alg/005_root/0006.php - to jest pierwszy schemat blokowy.
Dostaję adres do struktury ab, a w niej mam dobule ** v;
n - ilość równań
Odjąłem od ilości równań 1, żeby mi się zgadzały współrzędne i, j do v[][]. Z tegi samego powodu na początku dałem i = 0.
Początkujący programista prosi bardzo serdecznie o pomoc.
Mój kod to:
void gauss(struct macierz * ab)
{
int n; //liczba układów równań <=> liczba niewiadomych
n = ab->r - 1 ;
int i = 0; // takie nasze r
int j = 0; //takie nasze c
double m = 0; //zmienna pomocnicza
int k = 0; //kolejna zmienna pomocnicza
for(i = 0; i < n; ++i)
{
for(j = i + 1; j <= n; ++j);
{
m = -(ab->v[j][i])/(ab->v[i][i]);
for(k = i + 1; k <= (n+1); ++k)
{
ab->v[j][k] = ab->v[j][k] + m * ab->v[i][k];
}
}
}
}