C-standard-library-c-function-memmove

提供:Dev Guides
移動先:案内検索

Cライブラリ関数-memmove()

説明

Cライブラリ関数 void memmove(void str1、const void str2、size_t n)は *n 文字を str2 から str1 にコピーしますが、メモリブロックが重複している場合、memmove()はより安全な方法ですmemcpy()。

宣言

memmove()関数の宣言は次のとおりです。

void *memmove(void *str1, const void *str2, size_t n)

パラメーター

  • str1 -これは、コンテンツがコピーされる宛先配列へのポインタであり、void *型のポインタに型キャストされます。
  • str2 -これは、コピーされるデータのソースへのポインタであり、void *型のポインタに型キャストされます。
  • n -これはコピーされるバイト数です。

戻り値

この関数は、宛先(str1)へのポインターを返します。

次の例は、memmove()関数の使用方法を示しています。

#include <stdio.h>
#include <string.h>

int main () {
   char dest[] = "oldstring";
   const char src[]  = "newstring";

   printf("Before memmove dest = %s, src = %s\n", dest, src);
   memmove(dest, src, 9);
   printf("After memmove dest = %s, src = %s\n", dest, src);

   return(0);
}

次の結果を生成する上記のプログラムをコンパイルして実行しましょう-

Before memmove dest = oldstring, src = newstring
After memmove dest = newstring, src = newstring