Array kopieren
-
Hallo.
Mal angenommen, ich habe ein Array, und möchte dies gerne in ein zweites kopieren. Kann man das noch eleganter als in so einer for-Schleife machen?
void Funktion (double array[1000][1000]) { int i,j; double kopie[1000][1000]; for (i=0;i<1000;i++) { for (j=0;j<1000;j++) kopie[i][j] = array[i][j]; } }
DANKE.
V.K.
-
mit memcpy .. kompletter speicehr beriech kopieren... nehm ich mal an!!
-
Hallo
= geht wohl nicht? Ich arbeite immer mit std::aray.
chrische
-
wie waere es mit einem Zeiger?
int arr_orginal[10] = { ... }; int *arr_copy = ...;
naja das war nur ein Beispiel, wie man einzelne Werte aus dem Array kopieren koennte, aber ich bin mir sicher,dass es mit einer Schleife irgendwie immer geht.
vielleicht so:int arr_orginal[10] = { ... }; int arr_copy[10]; for (int i = 0; i != sizeof(arr_orginal)/sizeof(*arr_orginal); ++i) arr_orginal[i] = arr_copy[i];
hab es nicht kompiliert, aber ich will ja versuchen zu helfen wo es geht^^
mit freundlichen gruessen
-
nicht so:
double kopie[1000][1000]; memcpy (array,kopie,sizeof(double)*1000000);
?
-
ne, eher so:
memcpy(&kopie,&array,sizeof(kopie));
Edith: ist std::ar[r]?ay das gleiche wie std::vector?
-
kopie und array werden als zeiger interpretiert.. glaube nich das man die noch mal referenzieren muss..
-
Morris Szyslak schrieb:
Edith: ist std::ar[r]?ay das gleiche wie std::vector?
nein, ein vector(deutsch: Vektor) ist ein Sequenzieller Container
-
Was hinter vector<> steckt, ist hier jedem klar (oder sollte jedem klar sein)
Aber ein "std::aray" gibt es im offiziellen Standard nicht.
-
Morris Szyslak schrieb:
ist std::ar[r]?ay das gleiche wie std::vector?
nein, std::tr1::array ist das statische gegenstück zum vector. es ist sozusagen ein wrapper für das klassische array.
-
Ja, vector war klar - sag ich jetzt mal.
Danke.
-
ganz egal was man nimmt, ich glaube, über eine Laufzeit von O(n) kommt man nicht raus, aber in den meisten fällen recht ja auch eine Referenz, da geht die Übergabe in O(1).