Функция memcpy
Функция memcpy копирует заданное количество байт
из одного участка памяти в другой. Функция объявлена
в заголовочном файле <cstring>. В первый параметр
мы передаём указатель на приёмник (куда копировать),
во второй - указатель на источник (откуда копировать),
а в третий - количество байт для копирования. Функция
возвращает указатель на приёмник. Области памяти не
должны пересекаться - для перекрывающихся участков
используйте memmove.
Синтаксис
void* memcpy(void* dest, const void* src, size_t count);
Пример
Давайте скопируем 3 байта из одной строки в другую:
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char src[] = "abcde";
char dest[6] = "";
memcpy(dest, src, 3);
dest[3] = '\0';
cout << dest << endl;
return 0;
}
Результат выполнения кода:
"abc"
Пример
Давайте скопируем все символы строки вместе с завершающим нулём, используя длину строки:
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char src[] = "abcde";
char dest[6];
memcpy(dest, src, strlen(src) + 1);
cout << dest << endl;
return 0;
}
Результат выполнения кода:
"abcde"
Пример
Давайте скопируем массив целых чисел:
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
int src[] = {1, 2, 3, 4, 5};
int dest[5];
memcpy(dest, src, sizeof(src));
for (int i = 0; i < 5; i++)
{
cout << dest[i] << " ";
}
cout << endl;
return 0;
}
Результат выполнения кода:
1 2 3 4 5