C Programování

Jak používat funkci memcpy v jazyce C?

Jak používat funkci memcpy v jazyce C?
V jazyce C se funkce memcpy () používá ke kopírování bloku paměti z jednoho místa na druhé. V tomto článku budeme podrobně diskutovat o tom, jak se používá funkce memcpy (). Pojďme tedy začít.

Soubor záhlaví:

tětiva.h

Syntax:

void * mempcpy (void * dest, const void * src, size_t size)

Argumenty:

Funkce má 3 argumenty:

  1. cíl:
  2. Toto je počáteční ukazatel bloku paměti, na který ukazuje blok paměti src (2. argument) bude zkopírován. Ukazatel je deklarován jako neplatný, takže lze kopírovat jakýkoli typ bloku paměti.

  3. src:
  4. Toto je počáteční ukazatel bloku zdrojové paměti, odkud bude blok paměti zkopírován. Ukazatel je deklarován jako neplatný, takže lze kopírovat jakýkoli typ bloku paměti.

  5. velikost:
  6. Toto je velikost bloku paměti v bajtech.

Hodnota ukazatele dva dest a src by mělo být takovým způsobem, aby se dva paměťové bloky nepřekrývaly. Velikost paměťových bloků zdroje a cíle musí být alespoň velikost (3. argument) bajtů, aby nedocházelo k překrývání situací. Pokud se dva paměťové bloky překrývají, pak chování memcpy () funkce není definována. Pokud existuje možnost překrytí, můžete použít memmove () funkce knihovny, kde je dobře definováno překrývání. memmove () funkce je pomalejší ve srovnání s memcpy () funkce.

Vzhledem k hodnotě velikost, je - li ke zdroji nebo cíli přistupováno nad jejich délku vyrovnávací paměti, pak chování memcpy () funkce není definována.

The memcpy () funkce nekontroluje ukončení znaku „\ 0“.

Návratové hodnoty:

Tato funkce vrací hodnotu cílové adresy dest. Jako hodnotu dest je již k dispozici, takže se nemusí ukládat do žádné proměnné.

Příklady:

// Příklad 1.C
#zahrnout
#zahrnout
int main ()

char src [] = "Dobrý den";
char dest [13];
memcpy (dest, src, 6);
printf ("cíl po prvním memcpy () =>% s \ n", cíl);
memcpy (dest + sizeof (src) -1, "svět!", 8);
printf ("cíl po druhé memcpy () =>% s \ n", cíl);
návrat 0;

V příkladu 1.c deklarovali jsme dvoumístné pole src a dest. Velikost src je 6 a dest je 13. Nejprve jsme zkopírovali 6 znaků „H“, „e“, „l“, „l“, „o“, „\ 0“ z src na dest (Řádek 11). Ve druhé funkci memcpy () bylo zkopírováno 8 znaků ", 'w', 'o', 'r', 'l', 'd', '!',' \ 0 'do cíle po 5 znacích (řádek 15). Obrázkově to můžeme představit takto:

// Příklad 2.C
#zahrnout
#zahrnout
int main ()

student typedef

char * jméno;
int id;
int věk;
std;
std student1; // Deklarovat student1 typu std
std student2; // Deklarovat student2 typu std
// Přiřazení hodnoty sudent1
student1.name = "Bamdev Ghosh";
student1.id = 1105;
student1.věk = 30;
printf ("Student1: \ n \ tName:% s \ n \ tid:% d \ n \ tage:% d \ n", student1.název,
student1.id, student1.stáří);
// Kopírování student1 na student2
memcpy (& student2, & student1, sizeof (student1));
printf ("\ n \ nPo memcpy:");
printf ("\ n \ nStudent2: \ n \ tName:% s \ n \ tid:% d \ n \ tage:% d \ n",
student2.jméno, student2.id, student2.stáří);
návrat 0;

V příkladu 2.c deklarovali jsme dvě struktury student1 a student2 (Řádek 15 a 16). Nejprve inicializujeme student1 (řádek 19, 20, 21). Poté použijeme memcpy zkopírovat data z student1 na student2.

Závěr:

V tomto článku jsme se naučili, jak používat memcpy funkce. Viděli jsme, že tuto funkci lze použít pro jakýkoli typ paměťového bloku, ale tato funkce má určitá omezení. Tuto funkci tedy musíte používat opatrně.

Emulace kliknutí myší vznášením pomocí myši Clickless Mouse ve Windows 10
Používání myši nebo klávesnice ve špatném držení těla nadměrného používání může mít za následek mnoho zdravotních problémů, včetně napětí, syndromu ka...
Přidejte gesta myši do Windows 10 pomocí těchto bezplatných nástrojů
V posledních letech se počítače a operační systémy značně vyvinuly. Bývaly doby, kdy uživatelé museli procházet správci souborů pomocí příkazů. Stejně...
Ovládejte a spravujte pohyb myši mezi více monitory ve Windows 10
Správce myší se dvěma displeji umožňuje ovládat a konfigurovat pohyb myši mezi více monitory zpomalením jeho pohybů poblíž hranice. Windows 10/8 vám u...

Nejnovější články o operačních systémech. Spousta zajímavých průvodců a užitečných tipů. Cítíte se jako ve světě moderních technologií