English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
وظيفة مكتبة C void *memmove(void *str1, const void *str2, size_t n) من str2 نسخ n حتى str1، ولكن فيما يتعلق بمناطق التخزين المتداخلة، memmove() هي طريقة أكثر أمانًا من memcpy(). إذا كانت منطقة الهدف ومنطقة المصدر متداخلة، فإن memmove() يمكن أن يضمن أن يتم نسخ بيانات منطقة التداخل إلى منطقة الهدف قبل أن يتم تغطيتها، ويتم تغيير محتويات منطقة المصدر بعد النسخ. إذا لم تكن منطقة الهدف ومنطقة المصدر متداخلة، فإن وظيفة memmove() تعمل بنفس الطريقة مثل وظيفة memcpy().
هذا هو إعلان وظيفة memmove().
void *memmove(void *str1, const void *str2, size_t 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\n", dest, src); memmove(dest, src, 9); printf("After memmove dest = %s, src = %s\n", dest, src); return(0); }
لن نقوم بترميز وتشغيل البرنامج المذكور أعلاه، مما سيؤدي إلى نتائج التالي:
قبل memmove dest = oldstring، src = newstring بعد memmove dest = newstring، src = newstring