Funkcja memcpy() w językach C i C++ służy do kopiowania bloku pamięci z jednej lokalizacji do drugiej. W przeciwieństwie do innych funkcji kopiowania, plik memcpy funkcja kopiuje określoną liczbę bajtów z jednego miejsca w pamięci do drugiego miejsca w pamięci, niezależnie od typu przechowywanych danych.
Deklaruje się w plik nagłówkowy. W C++ jest to również zdefiniowane wewnątrz plik nagłówkowy.
Składnia memcpy
Funkcja memcpy jest zadeklarowana jako:
void * memcpy (void * to , const void * from , size_t numBytes );>
Parametry
- to : Wskaźnik do lokalizacji pamięci, w której będą przechowywane skopiowane dane. from : Wskaźnik do lokalizacji pamięci, z której mają zostać skopiowane dane. numBytes : Liczba bajtów do skopiowania.
Wartość zwracana
- Ta funkcja zwraca wskaźnik do lokalizacji pamięci, do której kopiowane są dane.
Przykład memcpy
Poniżej znajduje się program w C pokazujący działanie memcpy()
C
// C program to demonstrate working of memcpy> #include> #include> int> main()> {> >char> str1[] =>'Geeks'>;> >char> str2[] =>'Quiz'>;> >puts>(>'str1 before memcpy '>);> >puts>(str1);> >// Copies contents of str2 to str1> >memcpy>(str1, str2,>sizeof>(str2));> >puts>(>'
str1 after memcpy '>);> >puts>(str1);> >return> 0;> }> |
czytanie Java w CSV
>
>Wyjście
str1 before memcpy Geeks str1 after memcpy Quiz>
Ważne uwagi dotyczące memcpy()
- memcpy() nie sprawdza przepełnienia ani .
- memcpy() prowadzi do niezdefiniowanego zachowania, gdy adresy źródłowy i docelowy nakładają się.
Notatka : memmove() to kolejna funkcja biblioteczna, która dobrze radzi sobie z nakładaniem się.
Powiązany artykuł
- Napisz własne memcpy() i memmove()