Hallo zusammen.
Habe mal meine Funktion hier reingestellt in der Hoffnung ihr könnt mir helfen.
Ich versuche nämlich eine Funktion zu schreiben mit der ich zwei 2-dimensionale Felder miteinander multiplizieren möchte (matrizenmultiplikation). Die Felder werden im Hauptprogramm initialisiert und sollen dann an die Funktion übergeben werden. Danach soll die errechnete Matrix wieder an das Hauptprogramm zurückgegeben werden.
Ich habe zwar versucht dies zu realisieren, aber ich bekomme nur Fehlermeldungen. Ich hatte die Multiplikation erst im Hauptprogramm ausgeführt und da lief sie, deshalb vermute ich mal, dass ich an der Übergabe der Felder scheiter.
Ich hoffe ihr könnt mir sagen wo der Fehler in meiner Funktion steckt.
/*
eingabe.c
Funktion zur Eingabe der Matrix
*/
#include
#include
int eingabe ( int m , int n , int *matrix0 )
{
int c , d , matrix[m][n] ;
for ( c=0 ; c!=n ; c++ )
{
for ( d=0 ; d!=m ; d++ )
{
scanf ( „%d“ , &matrix[c][d] );
}
}
return *matrix;
}
int multiplikation ( int m , int n , int a , int b , int *matrix1 , int *matrix2 , int *matrix3 )
{
int x , y , p , q , hilf;
if (m==b)
{
for ( x=0 ; x!=n ; x++ )
{
for ( p=0 ; p!=a ; p++ )
{
y=0;
q=0;
hilf=0;
while (y!=m)
{
hilf = hilf + ( matrix1[x][y] * matrix2[q][p] );
y=y+1;
q=q+1;
}
*matrix3[x][p] = hilf;
}
}
}
return *matrix3;
Fehlercode:
Error …: 24 illegal return type; found ‚pointer to int‘ expected int’
Error …: 47 type error: pointer expected
Error …: 47 type error: pointer expected
Error …: 53 type error: pointer expected
Error …: 53 type error: pointer expected
Compilation + link time:0.0 sec, Return code: 1