memmove() 関数とは
C ライブラリ関数 memmove() あるメモリアドレスから別のメモリアドレスに特定のバイト数をコピーするために使用されます。重複するデータ領域の影響を受けないため、データをコピーする効果的で生産的な手法です。使用時 memmove() 配列をコピーするには、注意すべき点がいくつかあります。関数には、最初に 2 つのポインターを指定する必要があります。1 つはソース メモリ位置を表し、もう 1 つは宛先メモリー位置を表します。ソースから宛先にコピーするバイト数も指定する必要があります。
の memmove() メソッドは、重複するソースを処理し、メモリ内の任意の場所から任意の順序でデータをコピーできる柔軟な関数です。唯一の欠点は、次のような他のコピー方法よりも少し時間がかかることです。 memcpy()。
C プログラミングで memmove() を使用して配列をコピーする方法
の memmove() 関数は
空所 * メモリ移動 ( 空所 * 始める 、 定数 空所 * ソース 、 size_t n ) ;
ポインター ボイド*宛先 ソース配列の内容がコピーされる宛先配列を指定します。コピーしたいソース配列へのポインタは const です ボイド*ソース .ソース配列から宛先配列にコピーするバイト数は、引数によって指定されます size_t n .
たとえば、次のコード行を見てください。
#include
#include
整数 主要 ( ) {
整数 ソース配列 [ ] = { 1 、 2 、 3 、 4 、 5 } ;
整数 宛先配列 [ 5 ] = { 0 } ;
size_t サイズ = のサイズ ( ソース配列 ) ;
メモリ移動 ( 宛先配列 、 ソース配列 、 サイズ ) ;
ために ( 整数 私 = 0 ; 私 < 5 ; 私 ++ ) {
printf ( '%d' 、 宛先配列 [ 私 ] ) ;
}
戻る 0 ;
}
ソース配列と宛先配列配列は、上記のコードで最初に定義されます。宛先配列は最初は空ですが、ソース配列には要素 1 ~ 5 があります。 のサイズ() 次に、演算子を使用してソース配列のサイズを決定し、結果をサイズ変数に保存します。ソース配列の内容は、宛先配列にコピーされます。
出力
結論
C プログラミング言語は、配列をコピーする効果的で信頼できる方法を提供します。 memmove() 関数。その汎用性は、オーバーラップ メモリを処理する機能に由来し、構文が単純であるため、どの C プロジェクトでも使用できます。