memcpy はメモリ ブロックのコピーに使用されます。その用途には、1) メモリ ブロックの浅いコピーの実行、2) データ ブロックの移動、3) メモリの初期化、4) 単純なレイアウトでの構造のコピーが含まれます。
memcpy の目的
memcpy は、メモリ ブロックをコピーするために使用される C 言語標準ライブラリの関数です。 。その構文は次のとおりです:
<code class="c">void *memcpy(void *dest, const void *src, size_t n);</code>
ここで:
dest
: ターゲット メモリ アドレス。 src
: ソース メモリ アドレス。 n
: コピーするバイト数。 memcpy の主な用途は次のとおりです。
浅いコピー
memcpy は、ブロックの浅いコピーを実行するために使用できます。これはブロックの内容をコピーすることを意味しますが、ポインタが指す他のメモリはコピーされません。これは、新しいブロックのコピーを作成するのではなく、メモリの同じブロックへの新しいポインターを作成するポインターの割り当てとは異なります。
データの移動
memcpy は、メモリの割り当てまたは割り当て解除後のデータ位置の調整など、メモリ内のデータ ブロックを移動するために使用できます。
メモリの初期化
memcpy を使用すると、すべてのバイトを 0 に初期化するなど、メモリのブロックを特定の値またはパターンに初期化できます。
構造体のコピー
memcpy を使用すると、すべてのメンバーが単純なデータ型 (整数、文字など) である単純なレイアウトで構造体をコピーできます。ポインター メンバーまたは複雑なレイアウトを含む構造体の場合は、特殊なコピー関数が必要です。
例
<code class="c">// 复制 10 个字节从源数组到目标数组 int src[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int dest[10]; memcpy(dest, src, 10 * sizeof(int));</code>
これを実行すると、dest
配列には src
配列のコピーが含まれます。
以上がCでのmemcpyの用途は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。