Arrays einander zuweisen
-
Hi,
ich habe schon in der FAQ gesucht, jedoch nichts gefunden.Eigentlich sollten doch Point1 und Point2 Zeiger sein, die ich wie hier beschrieben einander zuordnen kann. Leider spukt der Compiler einen Fehler aus, dass Point2 in der vorletzten Zeile kein "L-Wert" ist.
Wie kann ich denn die Felder von Point1 den Feldern von Point2 zuordnen, ohne alle Felder einzeln zuzuordnen?
void main(){ double Point1[3]; Point1[0] = 0.0; Point1[1] = 1.0; Point1[2] = 2.0; double Point2[3]; Point2 = Point1; }
-
memcpy
-
void main(){ double Point1[3]; Point1[0] = 0.0; Point1[1] = 1.0; Point1[2] = 2.0; double Point2[3]; /*Point2 = Point1;*/ /*Das geht nicht, weil du versuchst Point2 die Adresse von Point1 zuzuweisen*/ memcpy((void *)Point2, (const void *)Point1, sizeof(double)*3); /*So geht's*/ }
-
warum castest du nach void* und nach const void*?
-
memcpy(Point2,Point1,sizeof(Point2));
noch besser:
memcpy(&Point2[0],&Point1[0],sizeof(Point2));
-
warum soll
&Point[0]
besser sein als
Point
??
-
Ist besser lesbar, da seh ich & => also Adresse.
(Hab auch mal gelesen, dass der Compiler (Precompiler?) das Point durch &Point[0] ersetzt)