memmove
, wmemmove
Bir arabelleği diğerine taşır. Bu işlevlerin daha güvenli sürümleri mevcuttur; bkz. memmove_s
, wmemmove_s
.
Sözdizimi
void *memmove(
void *dest,
const void *src,
size_t count
);
wchar_t *wmemmove(
wchar_t *dest,
const wchar_t *src,
size_t count
);
Parametreler
dest
Hedef nesne.
src
Kaynak nesne.
count
Kopyalanacak bayt (memmove
) veya karakter sayısıwmemmove
.
Dönüş değeri
değeridir dest
.
Açıklamalar
baytları count
(memmove
) veya karakterleri (wmemmove
) öğesine src
dest
kopyalar. Kaynağın ve hedef bölgelerin bazı bölümleri çakışıyorsa, her iki işlev de çakışan bölgedeki özgün kaynak baytların üzerine yazılmadan önce kopyalandığından emin olur.
Güvenlik Notu Hedef arabelleğin taşınan karakter sayısını karşılayacak kadar büyük olduğundan emin olun. Daha fazla bilgi için bkz . Arabellek taşmalarından kaçınma.
memmove
ve wmemmove
işlevleri yalnızca aşağıdaki örnekte gösterildiği gibi, sabit _CRT_SECURE_DEPRECATE_MEMORY
deyiminden #include
önce tanımlanmışsa kullanım dışı kalır:
#define _CRT_SECURE_DEPRECATE_MEMORY
#include <string.h>
veya
#define _CRT_SECURE_DEPRECATE_MEMORY
#include <wchar.h>
Gereksinimler
Yordam | Gerekli başlık |
---|---|
memmove |
<string.h> |
wmemmove |
<wchar.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
// 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
Ayrıca bkz.
Arabellek işleme
_memccpy
memcpy
, wmemcpy
strcpy
, wcscpy
, _mbscpy
strncpy
, _strncpy_l
, wcsncpy
, , _wcsncpy_l
, _mbsncpy
, _mbsncpy_l