Как копировать массивы с помощью memmove() в программировании на C

Kak Kopirovat Massivy S Pomos U Memmove V Programmirovanii Na C



Массивы — это базовый элемент языка программирования C, который позволяет программисту хранить множество элементов данных одного типа в одной переменной. Бывают случаи, когда программисту может понадобиться реплицировать содержимое одного массива в другой.

Что такое функция memmove()

Функция библиотеки C память() используется для копирования определенного количества байтов с одного адреса памяти на другой. Благодаря тому, что на него не влияют перекрывающиеся области данных, это эффективный и производительный метод копирования данных. Когда используешь память() Чтобы скопировать массив, нужно помнить о нескольких вещах. Сначала функции должны быть переданы два указателя, один из которых представляет исходную ячейку памяти, а другой — целевую ячейку памяти. Также необходимо указать количество байтов, которое вы хотите скопировать из источника в место назначения.

память() метод — это гибкая функция, которая может обрабатывать перекрывающиеся источники и копировать данные в любом порядке из любого места в памяти. Единственным недостатком является то, что это занимает немного больше времени, чем другие методы копирования, такие как память().







Как копировать массивы с помощью memmove() в программировании на C

память() функция определена в <строка.h> библиотека и имеет синтаксис:



пустота * запомнить ( пустота * начинать , константа пустота * источник , размер_t н ) ;

Указатель пустота* место назначения указывает целевой массив, в который будет скопировано содержимое исходного массива. Указатель на исходный массив, который мы хотим скопировать, является константой. недействительным * источник . Количество байтов, которое мы хотим скопировать из исходного массива в целевой массив, задается аргументом size_t n .



Взгляните, например, на следующую строку кода:





#include

#include

инт основной ( ) {

инт исходный_массив [ ] '=' { 1 , 2 , 3 , 4 , 5 } ;

инт назначение_массив [ 5 ] '=' { 0 } ;

размер_t размер '=' размер ( исходный_массив ) ;

запомнить ( назначение_массив , исходный_массив , размер ) ;

для ( инт я '=' 0 ; я < 5 ; я ++ ) {

printf ( '%д' , назначение_массив [ я ] ) ;

}

возвращаться 0 ;

}

Массивы исходного и целевого массивов сначала определяются в приведенном выше коде. Целевой массив изначально пуст, но исходный массив содержит элементы с 1 по 5. размер() Затем оператор используется для определения размера исходного массива, и результат сохраняется в переменной размера. Содержимое исходного массива копируется в целевой массив.

Выход



Заключение

Язык программирования C предлагает эффективный и надежный способ копирования массивов с помощью память() функция. Его универсальность обусловлена ​​способностью обрабатывать перекрывающуюся память, а благодаря простому синтаксису его можно использовать в любом проекте C.