[C]Zuweisungsfehler

Razorhawk

Webdesigner und MSP
Ich habe hier ein Problem bei dem ich nicht genau weiß waru mes gerade nicht geht:

Der Compiler gibt mir 2 Meldungen:

invalid operands to binary *
incompatible types in assignment

der Fehler tritt bei der Zeile

Code:
z = z - x[j]*xygauss[(i * zeilen)+j];

auf

Danke schonmal für die Fehlersuche ;)

hier mal der code



Code:
double* gauss (double* xygauss,int spalten,int zeilen,double* b){
       
  const int N = 3;
  int i,j,m;  
  double f;
  double *x[zeilen];


    // Eingabe von a und b ...

    //In Dreiecksform bringen:
    for (i = 0; i < spalten; ++i)
      for (j = i+1; j < zeilen; ++j) {
        f = xygauss[(j * zeilen)+i]/xygauss[(i * zeilen)+i];
        for ( m = i; m<spalten; ++m)
          xygauss[(j * zeilen)+m] = xygauss[(j * zeilen)+m] - f*xygauss[(i * zeilen)+m];
        b[j] = b[j] - f*b[i];
      }
      

    //Rueckrechnung (x-Werte berechnen):
    for (i = zeilen-1; i>=0; --i) {
      double z = b[i];
      for (j=i+1; j<spalten; ++j)
        z = z - x[j]*xygauss[(i * zeilen)+j];
      x[i] = z/xygauss[(i * zeilen)+i];
    }
    

   return x;    
              


}
 
Zuletzt bearbeitet:
Welchen Compiler verwendest du? GCC ist nämlich etwas hilfreicher bei der Fehlersuche :)
Code:
In function `double* gauss(double*, int, int, double*)':
25: invalid operands of types `double*' and `double' to binary `operator*'
26: cannot convert `double' to `double*' in assignment
30: cannot convert `double**' to `double*' in return
3: warning: unused variable `const int N'
Das Problem: x[ j ] ist vom Typ double *, der zweite Faktor aber vom Typ double. Vermutlich hast du dich irgendwie bei der Deklaration von x verhauen.
 
Habs rausgefunden,
habe die Deklaration von *x[zeilen]
in *x mit malloc(sizeof(double*zeilen)) umgeändert und nu klappts natürlich!
 
Du solltest aber
Code:
malloc(sizeof(double)*zeilen)
verwenden. Aber das war wohl ein Tippfehler, denn so kenn man das garnicht kompilieren ;-)
 
Zurück