Array kopieren

C

C152778

Hallo zusammen,

eine kleine Anfängerfrage :
Ich möchte gerne einen integer array kopieren, was jedoch wie folgt nicht funktioniert:
Code:
int a[] = {1, 2};
int b[2];
b = a;

Bleibt mir daher nichts anderes übrig als eine Copy Fuktion zu schreiben, wie z.B.
Code:
void copyArray(int a[n], int b[n]) {
  for(int i = 0; i < n; i++)
    a[i] = b[i];
}

Oder gibt es bereits eingebaute (bessere) Kopierfunktionen für Arrays?

Danke und schöne Grüß, Cyraid
 
Hi.
eine kleine Anfängerfrage :
Ich möchte gerne einen integer array kopieren, was jedoch wie folgt nicht funktioniert:
Code:
int a[] = {1, 2};
int b[2];
b = a;

Bleibt mir daher nichts anderes übrig als eine Copy Fuktion zu schreiben, wie z.B.
Code:
void copyArray(int a[n], int b[n]) {
  for(int i = 0; i < n; i++)
    a[i] = b[i];
}

Oder gibt es bereits eingebaute (bessere) Kopierfunktionen für Arrays?
Ja. memcpy :google:

Oder in C++ std::copy :google:

Wobei man in C++ evtl. gleich einen std::vector verwenden sollte.

Gruß
 
memcpy

Hi, hier noch die mencpy-Syntax: memcpy(%Ziel%,%Quelle%)

Ich hoffe, du kommst damit klar ;)

lorenz
 
Hier noch als Erklärung warum deine erste Variante nicht funktioniert:
Sowohl a als auc b sind lokale Variabeln auf dem Stack mit jeweils sizeof(int) * 2 bytes. Diese sind ja schon fix mit einer Adresse behaftet (ebp - 8, ebp - 4). Daher ist es nicht möglich diesen eine neue Adresse zuzuweisen.
 
Zurück