T
the_sacrificer
Gast
[C] mehrdim. Arrayübergabe an Funktionen
Hallo zusammen,
ich hab ein essentielles Verständnisproblem was o.g. Problem betrifft. Wie übergebe ich Arrays korrekt? Stimmt der Prototyp überhaupt? Der Compiler meckert jedenfalls in Zeile 34, "Übergabe des Arguments 1(-3) von »mult« von inkompatiblem Zeigertyp".
Wäre nett, wenn das jemand korrigieren könnte. Vllt komm ich dann auf den Hintergrund.
Gruß
the_sacrificer
Hallo zusammen,
ich hab ein essentielles Verständnisproblem was o.g. Problem betrifft. Wie übergebe ich Arrays korrekt? Stimmt der Prototyp überhaupt? Der Compiler meckert jedenfalls in Zeile 34, "Übergabe des Arguments 1(-3) von »mult« von inkompatiblem Zeigertyp".
Code:
#include <stdio.h>
#include <math.h>
/* Prototyp */
void mult(double **, double **, double **);
/* Funktion zur Matrizenmultiplikation */
void mult(double **a, double **b, double **c)
{
int i, j, k;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
for(k=0;k<3;k++)
{
c[i][j] += a[i][k] * b[k][j];
}
}
}
}
/* Hauptprogramm */
int main()
{
/* 3 Matrizen */
double a[3][3]={{1., 0., 0.},{.3, 1., 0.},{.6, 0., 1.},};
double b[3][3]={{3., 6., 0.},{0., 5., 5.},{0., 0., -8.},};
double c[3][3]={{0., 0., 0.},{0., 0., 0.},{0., 0., 0.},};
/* Funktionsaufruf */
mult(&a, &b, &c);
/* Ausgabe */
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%lf\t", c[i][j]);
}
printf("\n");
}
return 0;
}
Wäre nett, wenn das jemand korrigieren könnte. Vllt komm ich dann auf den Hintergrund.
Gruß
the_sacrificer