Как да копирате масиви с memmove() в C програмиране

Kak Da Kopirate Masivi S Memmove V C Programirane



Масивите са основен елемент в езика за програмиране C, който позволява на програмиста да съхранява множество елементи от един и същи тип данни в една променлива. Има моменти, когато може да се наложи програмистът да репликира съдържанието на един масив в друг.

Какво представлява функцията memmove().

Функцията C библиотека memmove() се използва за копиране на определен брой байтове от един адрес на паметта в друг. Поради факта, че не се влияе от припокриващи се области с данни, това е ефективна и продуктивна техника за копиране на данни. При използване memmove() за да копирате масив, трябва да имате предвид няколко неща. Функцията първо трябва да получи два указателя, единият представляващ местоположението на паметта източник, а другият местоположението на паметта местоназначение. Количеството байтове, които искате да копирате от източника към дестинацията, също трябва да бъде посочено.

The memmove() методът е гъвкава функция, която може да обработва припокриващи се източници и да копира данни в произволен ред от всяко място в паметта. Единственият недостатък е, че отнема малко повече време от други методи за копиране като memcpy().







Как да копирате масиви с memmove() в C програмиране

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



невалиден * memmove ( невалиден * започнете , конст невалиден * src , размер_т н ) ;

Показалецът void* цел указва целевия масив, в който ще бъде копирано съдържанието на изходния масив. Указателят към изходния масив, който искаме да копираме, е const void* src . Броят байтове, които искаме да копираме от изходния масив в целевия масив, се определя от аргумента размер_t n .



Разгледайте например следния ред код:





#include

#include

вътр основен ( ) {

вътр източник_масив [ ] = { 1 , 2 , 3 , 4 , 5 } ;

вътр масив_дестинация [ 5 ] = { 0 } ;

размер_т размер = размер на ( източник_масив ) ;

memmove ( масив_дестинация , източник_масив , размер ) ;

за ( вътр аз = 0 ; аз < 5 ; аз ++ ) {

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

}

връщане 0 ;

}

Масивът източник и целевият масив първо се дефинират в кода по-горе. Масивът местоназначение първоначално е празен, но масивът източник има елементи от 1 до 5. The размер на() след това се използва за определяне на размера на изходния масив и резултатът се записва в променливата размер. Съдържанието на изходния масив се копира в целевия масив.

Изход



Заключение

Езикът за програмиране C предлага ефективен и надежден начин за копиране на масиви с memmove() функция. Неговата гъвкавост идва от способността му да се справя с припокриваща се памет и поради ясния му синтаксис всеки C проект може да го използва.