Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Arrays kopieren

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
08.03.2005, 07:58 Uhr
~Richie
Gast


Hi,
ich möchte ein gefülltes 2 dimensionales Array in neues leeres auch 2 dim. Array kopieren.
Kann mir da bitte jemand mit ein paar Zeilen Code aushelfen.

Thanks,
Richie
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.03.2005, 08:21 Uhr
Tommix



Hallo,

C++:
memcpy(neues_array, altes_array, sizeof(altes_array));


unter der Annahme, beide Arrays sind gleich groß.

Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
08.03.2005, 08:37 Uhr
Pablo
Supertux
(Operator)


Das Problem von memcpy(3) ist, dass die Speicherbereiche sich nicht überlappen dürfen. memmove(3) schafft das.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
08.03.2005, 09:45 Uhr
enno-tyrant
Frag nicht!



C++:
#include <iostream>

int main()
{
    int array2dAlt[3][4]={    {1,2,3,4,},
                            {5,6,7,8},
                            {9,0,1,2}};
    int array2dNeu[3][4];
    
    // kopieren
    for (unsigned int i=0; i < 3; ++i)
    {
        for (unsigned int j=0; j < 4; ++j)
        {
            array2dNeu[i][j] = array2dAlt[i][j];
        }
    }
}



--
...um etwas zu verstehen muß man wissen wie es funktioniert...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
08.03.2005, 09:52 Uhr
Tommix




Zitat von Pablo:
Das Problem von memcpy(3) ist, dass die Speicherbereiche sich nicht überlappen dürfen. memmove(3) schafft das.

Wenn man Array a nach Array b kopiert, sollte dieser Fall eigentlich nicht auftreten.

- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
08.03.2005, 12:09 Uhr
(un)wissender
Niveauwart


In C++ immer std::copy benutzen!
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
08.03.2005, 12:37 Uhr
0xdeadbeef
Gott
(Operator)


Jupp. Allerdings muss man bei mehrdimensionalen Arrays wegen der template-spezialisierung ein bisschen aufpassen:

C++:
#include <algorithm>

int main() {
  int src[3][4]={    {1,2,3,4,},
                            {5,6,7,8},
                            {9,0,1,2}};
  int dst[3][4];

  std::copy(&src[0][0], &src[0][0] + sizeof(src), &dst[0][0]);
}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
08.03.2005, 14:05 Uhr
(un)wissender
Niveauwart


Oh, oh, beefy und das dir. Dein Programm liest und schreibt 36 Byte zuviel...


C++:
#include <algorithm>
#include <iostream>
#include <iterator>

int main() {
    
  int src[3][4]=
  {  
      {1,2,3,4},
      {5,6,7,8},
      {9,0,1,2}
  };
  
  int dst[3][4];

  std::copy(&src[0][0], &src[0][0] + sizeof(src) / sizeof(int), &dst[0][0]);
  std::copy(&dst[0][0], &dst[0][0] + sizeof(src) / sizeof(int), std::ostream_iterator<int>(std::cout, " "));
}


--
Wer früher stirbt ist länger tot.

Dieser Post wurde am 08.03.2005 um 14:06 Uhr von (un)wissender editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
08.03.2005, 17:36 Uhr
0xdeadbeef
Gott
(Operator)


Äh, ja, klar. Du hast recht.

Wie konnte mir das nur passieren?
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: