C言語のmemcpy関数の使い方

メモリーコピー関数であるmemcpy関数は、ソースメモリー領域のデータをターゲットメモリー領域にコピーします。関数のプロトタイプは以下のとおりです。

void* memcpy(void* dest, const void* src, size_t n);

具体的な使用方法は次のようになります。

  1. 書き込み先のメモリアドレスを示すポインタ。
  2. コピーするデータを格納するメモリ領域の開始位置である元メモリのポインタ
  3. コピーするバイト数。

以下がサンプルコードになります。

#include <stdio.h>
#include <string.h>
int main() {
char source[] = "Hello, world!";
char destination[20];
// 使用memcpy函数将source中的数据拷贝到destination中
memcpy(destination, source, strlen(source) + 1);
printf("源数据:     %s\n", source);
printf("拷贝后的数据:%s\n", destination);
return 0;
}

この結果はネイティブの日本語で書き直されます。オプションは1つだけです。

源数据:     Hello, world!
拷贝后的数据:Hello, world!

memcpy関数の使用時は、次の点に注意してください。

  1. 境界アクセスを避けるには、対象メモリー領域に十分な大きさがあることを確認する必要があります。
  2. ソースとターゲットのメモリ領域が重なる場合は、memcpy 関数ではなく memmove 関数を使用してメモリをコピーします。なぜなら memcpy 関数は重複する領域を正しく処理する保証がないためです。
  3. n の引数は size_t 型で、 ヘッダファイルにインクルードする必要があります。
コメントを残す 0

Your email address will not be published. Required fields are marked *


广告
広告は10秒後に閉じます。
bannerAds