memmove() - C語言庫函式


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 ()
{
   const char dest[] = "oldstring";
   const char src[]  = "newstring";

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

   return(0);
}

讓我們編譯和執行上面的程式,這將產生以下結果:

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