statisches Array verarbeiten:
-
angenommen ich habe folgenden Code:
long va[32]; // ... va wird gefüllt ... long vb[32] = va;Habe ich dann quasi 2 long Zeiger, die auf den gleichen Speicher zeigen oder wird hier etwas kopiert?
-
Da vb kein Zeiger ist, sondern ein Array, das Werte abspeichert, wird der Speicherinhalt von va and vb zugewiesen, und somit kopiert. Eine reine Adresszuweisung (und somit keine Kopie), würdest du durch einen Zeiger auf va erreichen:
long va[32]; // ... va wird gefüllt ... long* vb = &va;
-
error: initialization with "{...}" expected for aggregate object long vb[32] = va; ^
-
doofe Frage ich weiß schrieb:
...
Habe ich dann quasi 2 long Zeiger, die auf den gleichen Speicher zeigen oder wird hier etwas kopiert?Weder noch.
Das wird Dir auch der Compiler sagen, wenn Du ihn bemühst.
-
mikey schrieb:
long* vb = &va;den Adressoperator kannste dir doch eigtl. sparen - "va" stellt ja schon die Adresse dar oder?
-
Paul schrieb:
den Adressoperator kannste dir doch eigtl. sparen - "va" stellt ja schon die Adresse dar oder?
Stimmt, es geht doch nur ohne Adressoperator, mit Adressoperator bricht der Compiler ab. Mein Fehler.
