РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
183 of 815 menu

Функция 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

Смотрите также

  • функция memmove,
    которая копирует память с учётом перекрытия областей
  • функция memset,
    которая заполняет блок памяти заданным значением
  • функция memcmp,
    которая сравнивает два блока памяти
  • функция strncpy,
    которая копирует заданное количество символов строки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить