Ц Програмирање

Како се користи мемцпи функција на језику Ц?

Како се користи мемцпи функција на језику Ц?
У језику Ц функција мемцпи () се користи за копирање блока меморије са једне локације на другу. У овом чланку ћемо детаљно размотрити како се користи мемцпи () функција. Па, кренимо.

Датотека заглавља:

низ.х

Синтакса:

воид * мемпцпи (воид * дест, цонст воид * срц, сизе_т сизе)

Аргументи:

Функција узима 3 аргумента:

  1. дест:
  2. Ово је почетни показивач меморијског блока тамо где је меморијски блок назначен срц (2. аргумент) ће бити копиран. Показивач је проглашен празним, тако да се може копирати било који тип меморијског блока.

  3. срц:
  4. Ово је почетни показивач изворног меморијског блока одакле ће се меморијски блок копирати. Показивач је проглашен празним, тако да се може копирати било који тип меморијског блока.

  5. величина:
  6. Ово је величина меморијског блока у бајтовима.

Вредност два показивача дест и срц треба да буде на такав начин да се два меморијска блока не преклапају. Величина меморијских блокова извора и одредишта мора бити најмање величина (3. аргумент) бајтови како би се избегле преклапајуће ситуације. Ако се два меморијска блока преклапају, тада се понашање мемцпи () функција није дефинисана. Када постоји могућност преклапања, можете користити меммове () функција библиотеке где је преклапање добро дефинисано. меммове () функција је спорија у поређењу са мемцпи () функцију.

Због вредности величина, ако се извору или одредишту приступа преко њихове дужине бафера, тада се понашање мемцпи () функција није дефинисана.

Тхе мемцпи () функција не означава да ли завршава знак '\ 0'.

Повратне вредности:

Ова функција враћа вредност одредишне адресе дест. Као вредност дест је већ доступан, па га није потребно чувати у било којој променљивој.

Примери:

// Пример1.ц
#инцлуде
#инцлуде
инт маин ()

цхар срц [] = "Здраво";
цхар дест [13];
мемцпи (дест, срц, 6);
принтф ("дест након прве мемцпи () =>% с \ н", дест);
мемцпи (дест + сизеоф (срц) -1, "свет!", 8);
принтф ("дест после друге мемцпи () =>% с \ н", дест);
ретурн 0;

У Примеру1.ц прогласили смо низ од два знака срц и дест. Величина срц је 6 и дест је 13. Прво смо копирали 6 знакова „Х“, „е“, „л“, „л“, „о“, „\ 0“ из срц до дест (Линија 11). У другу функцију мемцпи () копирано је 8 знакова ", 'в', 'о', 'р', 'л', 'д', '!',' \ 0 'до одредишта након 5 знакова (ред 15). Сликовито то можемо представити на следећи начин:

// Пример2.ц
#инцлуде
#инцлуде
инт маин ()

типедеф струцт студент

назив карактера;
инт ид;
инт аге;
стд;
стд студент1; // Прогласити студент1 типа стд
стд студент2; // Прогласити студент2 типа стд
// Додељивање вредности судент1
студент1.наме = "Бамдев Гхосх";
студент1.ид = 1105;
студент1.старост = 30;
принтф ("Студент1: \ н \ тНаме:% с \ н \ тид:% д \ н \ тага:% д \ н", студент1.име,
студент1.ид, студент1.старост);
// Копирај студент1 у студент2
мемцпи (& студент2, & студент1, величина (студент1));
принтф ("\ н \ нНакон мемцпи:");
принтф ("\ н \ нУченик2: \ н \ тИме:% с \ н \ тид:% д \ н \ ознака:% д \ н",
студент2.име, студент2.ид, студент2.старост);
ретурн 0;

У Примеру2.ц прогласили смо две структуре студент1 и студент2 (Ред 15 и 16). Прво иницијализујемо студент1 (редови 19, 20, 21). После тога користимо мемцпи за копирање података из студент1 до студент2.

Закључак:

У овом чланку смо научили како се користи мемцпи функцију. Видели смо да се ова функција може користити за било који тип меморијског блока, али ова функција има одређена ограничења. Дакле, ову функцију морате пажљиво користити.

Како да обрнете смер померања миша и додирних табли у оперативном систему Виндовс 10
Миш и Тоуцхпадрачунарство не само да олакшава рад, већ и ефикасније и мање времена. Не можемо замислити живот без ових уређаја, али ипак је чињеница д...
Како променити показивач миша и величину, боју и шему курсора на Виндовс 10
Показивач миша и курсор у оперативном систему Виндовс 10 су врло важни аспекти оперативног система. То се може рећи и за друге оперативне системе, так...
Бесплатни и отворени кодни покретачки програми за развој Линук игара
Овај чланак ће обухватити листу бесплатних покретача игара отвореног кода који се могу користити за развој 2Д и 3Д игара на Линуку. Бројни су такви мо...

Најновији чланци о оперативним системима. Много занимљивих водича и корисних савета. Осећате се као своји у свету модерне технологије