memmove, wmemmove

Memindahkan satu buffer ke buffer lainnya. Versi yang lebih aman dari fungsi-fungsi ini tersedia; lihat memmove_s, wmemmove_s.

Sintaks

void *memmove(
   void *dest,
   const void *src,
   size_t count
);
wchar_t *wmemmove(
   wchar_t *dest,
   const wchar_t *src,
   size_t count
);

Parameter

dest
Objek tujuan.

src
Objek sumber.

count
Jumlah byte (memmove) atau karakter (wmemmove) yang akan disalin.

Nilai hasil

Nilai dari dest.

Keterangan

count Menyalin byte (memmove) atau karakter (wmemmove) dari src ke dest. Jika beberapa bagian sumber dan wilayah tujuan tumpang tindih, kedua fungsi memastikan bahwa byte sumber asli di wilayah yang tumpang tindih disalin sebelum ditimpa.

Catatan Keamanan Pastikan bahwa buffer tujuan cukup besar untuk mengakomodasi jumlah karakter yang dipindahkan. Untuk informasi selengkapnya, lihat Menghindari overruns buffer.

Fungsi memmove dan wmemmove hanya tidak digunakan lagi jika konstanta _CRT_SECURE_DEPRECATE_MEMORY ditentukan sebelum #include pernyataan, seperti yang ditunjukkan dalam contoh berikut:

#define _CRT_SECURE_DEPRECATE_MEMORY
#include <string.h>

or

#define _CRT_SECURE_DEPRECATE_MEMORY
#include <wchar.h>

Persyaratan

Rutin Header yang diperlukan
memmove <string.h>
wmemmove <wchar.h>

Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.

Contoh

// crt_memcpy.c
// Illustrate overlapping copy: memmove
// always handles it correctly; memcpy may handle
// it correctly.
//

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

char str1[7] = "aabbcc";

int main( void )
{
   printf( "The string: %s\n", str1 );
   memcpy( str1 + 2, str1, 4 );
   printf( "New string: %s\n", str1 );

   strcpy_s( str1, sizeof(str1), "aabbcc" );   // reset string

   printf( "The string: %s\n", str1 );
   memmove( str1 + 2, str1, 4 );
   printf( "New string: %s\n", str1 );
}
The string: aabbcc
New string: aaaabb
The string: aabbcc
New string: aaaabb

Lihat juga

Manipulasi buffer
_memccpy
memcpy, wmemcpy
strcpy, , wcscpy_mbscpy
strncpy, , _strncpy_lwcsncpy, _wcsncpy_l, , _mbsncpy,_mbsncpy_l