Jeg er en Java-programmerer som lærer C/C++. Så jeg vet at Java har en funksjon som System.arraycopy(); for å kopiere en matrise. Jeg lurte på om det er en funksjon i C eller C ++ for å kopiere en matrise. Jeg var bare i stand til å finne implementering for å kopiere en matrise ved å bruke for loop, pekere osv. Er det en funksjon som jeg kan bruke til å kopiere en matrise?
Siden du ba om en C++-løsning...
#include <algorithm>
#include <iterator>
const int arr_size = 10;
some_type src[arr_size];
// ...
some_type dest[arr_size];
std::copy(std::begin(src), std::end(src), std::begin(dest));
Du kan bruke memcpy()
,
void * memcpy ( void * destination, const void * source, size_t num );
memcpy()
kopierer verdiene av num
byte fra plasseringen som pekes av source
direkte til minneblokken som pekes av destination
.
Hvis destination
og source
overlapper hverandre, kan du bruke memmove()
.
void * memmove ( void * destination, const void * source, size_t num );
memmove()
kopierer verdiene av num
bytes fra plasseringen pekt av source
til minneblokken pekt av destination
. Kopiering skjer som om en mellomliggende buffer ble brukt, slik at destinasjonen og kilden overlapper hverandre.