Array aus Funktion in Array übertragen
-
Titel sagt eigentlich alles.
Die Aufgabe war zwei Arrays mit zwei werten zu initialisieren(sollen Brüche darstellen) und mit einer Funktion zu multiplizieren. Dann das Ergebnis in ein drittes array namens c übergeben.Bisher siehts bei mir so aus, wo ich Probleme habe ist, das Ergebnis der Funktion in das dritte Array zu übergeben.
Sie wie der Code unten steht gibt er mir eine Fehlermeldung aus.
Error in 12: Lvalue required in function main()
Die Fehlermeldung sagt mir gar nichts.Wäre schön wenn mir jemand erklären könnte wie man das Ergebnis ins Dritte Array übergibt.
#include <iostream> using namespace std; int* mul(int *x,int *y) { int s[2]; s[0]=x[0]*y[0]; s[1]=x[1]*y[1]; return s; } int main() { int a[2]={1,2},b[2]={3,4}, c[2]; c=*mul(a,b); cout<<c[0]<<endl; cout<<c[1]; getchar(); return 0; }
-
Du kannst keine (rohen) Arrays zurückgeben.
// C-Style: void mul(int *a, int *b, int *c) { c[0] = a[0] * b[0]; c[1] = a[1] * b[1]; } // C++-Style #include <array> std::array<int, 2> mul(int *a, int *b) { std::array<int, 2> c; c[0] = a[0] * b[0]; c[1] = a[1] * b[1]; return c; }Wobei man in C eher eine Struktur "Bruch" nehmen würde, und in C++ eine Klasse "Bruch" mit entsprechend überladenen Operatoren.