memmove, wmemmove
Bir arabellek diğerine taşır.Bu işlevler daha güvenli sürümlerinin kullanılabilir olduğunu; see memmove_s, wmemmove_s.
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
Bayt sayısı (memmove) veya karakter (wmemmove) kopyalamak için.
Dönüş Değeri
The value of dest*.*
Notlar
Copies count bytes (memmove) or characters (wmemmove) from src to dest*.* Bazı bölgelerde kaynak alanı ve hedef üst üste gelirse, her iki işlevi üzerine önce örtüşen özgün kaynak dosyadaki kopyalanır emin olun.
Güvenlik Notu boyutta veya daha büyük kaynak arabelleği hedef arabelleğin aynı olduğundan emin olun.Daha fazla bilgi için bkz: Önleme arabelleğin taşmasına neden.
memmove Ve wmemmove işlevleri yalnızca etikettir, sabit _CRT_SECURE_DEPRECATE_MEMORY için önce kullanım dışı işlevler için sipariş ekleme deyiminde tanımlanan, aşağıdaki örnekte olduğu gibi böyle olur:
#define _CRT_SECURE_DEPRECATE_MEMORY
#include <string.h>
or
#define _CRT_SECURE_DEPRECATE_MEMORY
#include <wchar.h>
Gereksinimler
Yordamı |
Gerekli başlık |
---|---|
memmove |
<string.h> |
wmemmove |
<wchar.h> |
Ek uyumluluk bilgileri için bkz: Uyumluluk giriş.
Ö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 );
}
.NET Framework Eşdeğeri
Ayrıca bkz.
Başvuru
strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l