Array/Pointer/Code by Refrence
-
Ich hänge schon seit Stunden hier und bekomme es einfach nicht hin:
void f3(double*a[], double*b[], double*c[]){ *c[0]=(*a[1])* (*b[2])-(*a[2])* (*b[1]); *c[1]=(*a[2])* (*b[0])-(*a[0])* (*b[2]); *c[2]=(*a[0])* (*b[1])-(*a[1])* (*b[0]); } int main (int argc, const char * argv[]){ double d[] = {1, 2, 3}; double e[] = {-7, 8, 9}; double f[] = {0, 0, 0}; f3(&d, &e, &f); }
Also, mein Problem ist, dass immer wieder folgende Warnings auftauchen:
"Warning :Incompatible Pointer Types Passing 'Doule(*)[3]' to parameter of type 'double **'Ich verstehs nicht! Ich wäre sehr dankbar für jede Hilfe!
-
Die Warnings werden mir für die Zeile
f3(&d, &e, &f) angezeigt.
-
Du übergibst Pointer auf double-Arrays, deine Funktion erwartet aber Arrays von double-Pointern. Da man nicht weiß, was du überhaupt vorhast, kann man dir auch nicht wirklich helfen; vermutlich sind das sowieso beides die falschen Typen.
-
Ich denke, dies ist gewünscht:
void f3(double a[], double b[], double c[]) { c[0] = a[1] * b[2] - a[2] * b[1]; c[1] = a[2] * b[0] - a[0] * b[2]; c[2] = a[0] * b[1] - a[1] * b[0]; }
Und beim Aufruf dann nur
f3(d, e, f);