memcpy () в C / C ++

Опубликовано: 1 Января, 2022

memcpy () используется для копирования блока памяти из одного места в другое. Он объявлен в string.h

// Копирует байты "numBytes" из адреса "from" в адрес "to"
void * memcpy (void * to, const void * from, size_t numBytes);

Ниже приведен пример программы на языке C, демонстрирующей работу memcpy ().

/* AC program to demonstrate working of memcpy */
#include <stdio.h>
#include <string.h>
int main ()
{
char str1[] = "Geeks" ;
char str2[] = "Quiz" ;
puts ( "str1 before memcpy " );
puts (str1);
/* Copies contents of str2 to sr1 */
memcpy (str1, str2, sizeof (str2));
puts ( " str1 after memcpy " );
puts (str1);
return 0;
}

Выход:

 str1 перед memcpy 
Компьютерщики

str1 после memcpy 
Контрольный опрос

Примечания:
1) memcpy () не проверяет переполнение или 0
2) memcpy () приводит к проблемам, когда адреса источника и назначения перекрываются.

memmove () - еще одна библиотечная функция, которая хорошо справляется с перекрытием.

Напишите свои собственные memcpy () и memmove ()

Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше.

Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .
C++