Witam,
jestem nowy, wiec prosze Od razu nie krzyczec, ze w zlym miejscu pisze post, abo ze juz to bylo wiele razy poruszane na forum.
Musze napisac funkcje, ktora oblicza wyznacznik macierzy kwadratowej dowolnego rozmiaru.
Oto co mam:
double det (double** matrix, int n)
{
double** minor;
double sum=0.0;
double sign=1.0;
int i, j, k;
if(n==1)
sum=matrix[0][0];
if(n==2)
sum=((matrix[0][0]*matrix[1][1])-(matrix[1][0]*matrix[0][1]));
if(n>2)
{
minor=matrix_alloc(n-1);
for(i=0;i<n;i++)
{
for(j=0;j<(n-1);j++)
for(k=0;k<(n-1);k++)
{
if(k<i)
minor[j][k]=matrix[j+1][k];
else
minor[j][k]=matrix[j+1][k+1];
}
sum+=sign*matrix[0][i]*det(minor,n-1);
sign=(-sign);
}
matrix_free(minor);
}
return sum;
}
Ogolnie wszystko sie kompiluje, ale po uruchomianiu wywala mi SEGMENTATION FAULT. Blad najprawdopodoniej (jestem prawie pewien) tkwi w czescie, ktora kopiuje podmacierz do minora. Prosze o pomoc, gapie sie w to godzinami i nic wymyslec nie moge.
GDB wywala cos takiego: