W C funkcja memset () służy do ustawiania wartości jednostronnej na bajt bloku pamięci przez bajt. Ta funkcja jest przydatna do inicjalizacji bajtu bloku pamięci przez bajt przez określoną wartość. W tym artykule zobaczymy szczegółowo, w jaki sposób można użyć tej funkcji. Więc zacznijmy.
Plik nagłówka:
strunowy.HSkładnia:
void *memset (void *str, int ch, size_t n)Ta funkcja ustawia pierwszy N bajty bloku pamięci wskazane przez str przez Ch.
Argumenty:
Funkcja przyjmuje 3 argumenty:
Zwracaj wartości:
memset () Zwraca pierwszy adres bloku pamięci, z którego zaczyna ustawiać wartość.
Przykłady:
//Przykład 1.C
W przykładzie1.c, zadeklarowaliśmy jedną tablicę znaków o rozmiarze 30. Następnie zainicjowaliśmy go z ciągiem „ABCD EFGH.„W funkcji memset przeszliśmy 3 argumenty str,„ x ”i 3. Tak więc blok pamięci wskazany przez STR zostanie zresetowany pierwszych 3 znaków przez 'x.„Po memset, kiedy drukujemy pamięć, otrzymamy„ xxxd efgh."
W przykładzie2.C, przeszliśmy STR+4 do funkcji memset. Tak więc zresetuje pamięć po 4. miejscu Str. Po memset, kiedy drukujemy pamięć, otrzymamy „Abcdxxxgh."
W przykładzie3.C, zadeklarowaliśmy zestaw liczb całkowitych rozmiaru 5 i próbując ją zainicjować o 10. Ale z wyjścia widzieliśmy, że tablica nie jest inicjowana przez 10; Zamiast tego mamy wartość „168430090”. Wynika to z faktu, że wartość liczb całkowita jest większa niż jeden bajt, a funkcja memset przekształca wartość na znak niepodpisany. Teraz zobaczymy, jak otrzymamy wartość „168430090”.
Binarna reprezentacja 10 to 00000000 00000000 00000000 00001010.
Gdy liczba całkowita przekonwertowana na niepodpisaną char, rozważany jest niższy 1 bajt. Tak więc, gdy 10 zostanie przekonwertowane na niepodpisaną char, jest to reprezentacja binarna 00001010.
Funkcja memset () ustawia bajt lokalizacji pamięci według bajtu. Tak więc w sumie 4 bajty to: 00001010 00001010 00001010 00001010.
Wartość dziesiętna binarnej reprezentacji 4 bajtów wynosi 168430090.
// Przykład4.C
W przykładzie4.c, zainicjowaliśmy tablicę liczb całkowitych o 0. Wszystkie fragmenty binarnej reprezentacji 0 to 0. Więc tablica jest inicjowana przez 0.
W przykładzie 5.c, zainicjowaliśmy tablicę liczb całkowitych o 0. Wszystkie fragmenty binarnej reprezentacji -1 wynoszą 1. Więc tablica jest inicjowana przez -1.
Wniosek:
W tym artykule widzieliśmy za pomocą funkcji memset, w jaki sposób możemy skutecznie zainicjować lub ustawić wartość bloku pamięci. Możemy ustawić dowolny znak i 0 lub -1 jako wartość liczb całkowitą na blok pamięci. Funkcja memset jest szybsza, aby ustawić duży kawałek ciągłej pamięci w porównaniu z po prostu ustawieniem lokalizacji za pomocą pętli.