memmove – копирование массивов (в том числе пересекающихся).
Синтаксис:
#include < string.h >
void *memmove (void *destination, const void *source, size_t n);
Аргументы:
destination – указатель на массив в который будут скопированы данные.
source – указатель на массив источник копируемых данных.
n – количество байт для копирования.
Возвращаемое значение:
Функция возвращает указатель на массив, в который скопированы данные.
Описание:
Функция memmove копирует n байт из массива (области памяти), на который указывает аргумент source, в массив (область памяти), на который указывает аргумент destination. При этом массивы (области памяти) могут пересекаться.
Пример:
В примере копируются пересекающиеся области памяти. Создается массив src размером 10 байт, и копируются его область памяти, начиная с третьего байта и заканчивая шестым, в этот же массив, начиная с четвертого байта. Отсчет байтов ведется с 0.
#include < stdio.h > //Для printf
#include < string.h > //Для memmove
int main (void)
{
// Исходный массив данных
unsigned char src[10]=”1234567890”;
// Вывод массива src на консоль
printf (“src old: %s\n”,src);
// Копируем 3 байт
memmove (&src[4], &src[3], 3);
// Вывод массива src на консоль
printf (“src new: %s\n”,src);
return 0;
}
| |
Результат:
Вывод в консоль:
src old: 1234567890
src new: 1234456890
|
Смотри так же:
memccpy
memcpy
memmove
memset
mktime
strcat
strcpy
strncat
strncpy
strxfrm
|