私はC/C++を学んでいるJavaプログラマーです。Javaには配列をコピーするSystem.arraycopy();のような関数があるのは知っています。CやC++に配列をコピーする関数があるかどうか気になっていました。私は、forループやポインタなどを使って配列をコピーする実装しか見つけることができませんでした。配列をコピーするのに使用できる関数はありますか?
memcpy()`を使用することができます。
void * memcpy ( void * destination, const void * source, size_t num );
memcpy()は,
sourceが指す場所から
numバイトの値を
destination`が指すメモリブロックに直接コピーする。
もし、destination
とsource
が重なっている場合は、memmove()
を使うことができます。
void * memmove ( void * destination, const void * source, size_t num );
memmove()は、
sourceが指す場所から
numバイトの値を
destination`が指すメモリブロックにコピーします。コピーは中間バッファが使われているかのように行われ、コピー先とコピー元が重なることができます。