I C brukes memset () -funksjonen til å angi en en-byte-verdi til en minneblokk byte av byte. Denne funksjonen er nyttig for initialisering av en minneblokk byte av byte med en bestemt verdi. I denne artikkelen vil vi se i detalj hvordan denne funksjonen kan brukes. Så la oss komme i gang.
Headerfil:
streng.hSyntaks:
void *memset (void *str, int ch, size_t n)Denne funksjonen angir den første n byte av minneblokken pekt av str av Ch.
Argumenter:
Funksjonen tar 3 argumenter:
Returverdier:
memset () Returnerer den første adressen til minneblokken der den begynner å angi verdien.
Eksempler:
// Eksempel1.c
I eksempel1.C, vi har erklært ett tegn på størrelse 30. Så har vi initialisert den med strengen “ABCD EFGH.”I memset -funksjonen har vi bestått 3 argumenter STR, 'X' og 3. Så minneblokken pekt av STR vil bli tilbakestilt de tre første tegnene av 'x.'Etter memset, når vi skriver ut minnet, får vi “xxxd efgh.”
I eksempel2.C, vi har passert STR+4 til memset -funksjon. Så det tilbakestiller minnet etter det fjerde plasseringen av STR. Etter memset, når vi skriver ut minnet, får vi “ABCDXXXGHGHGHGHG.”
I eksempel3.C, vi har erklært et heltall med størrelse 5 og prøver å initialisere det med 10. Men fra utgangen har vi sett at matrisen ikke er initialisert med 10; I stedet har vi fått verdien “168430090”. Dette er fordi heltallverdien er større enn en byte og memsetfunksjonen konverterer verdien til en usignert karakter før kopiert. Nå får vi se hvordan vi får verdien “168430090”.
Den binære representasjonen av 10 er 00000000 00000000 00000000 00001010.
Når heltall konverteres til usignert røye, blir den nedre 1 byte vurdert. Så når 10 blir konvertert til usignert røye, er det en binær representasjon 00001010.
memset () -funksjonen angir minnested byte av byte. Så totalt 4 byte vil være: 00001010 00001010 00001010 00001010.
Desimalverdien av den binære representasjonen av 4 byte er 168430090.
// Eksempel4.c
I eksempel4.C, vi har initialisert heltallsarrayen med 0. Alle biter av den binære representasjonen av 0 er 0. Så matrisen initialiseres med 0.
I eksempel5.C, vi har initialisert heltallsarrayen med 0. Alle biter av den binære representasjonen av -1 er 1. Så matrisen initialiseres med -1.
Konklusjon:
I denne artikkelen har vi sett ved hjelp av memset -funksjonen hvordan vi kan initialisere eller angi verdien av en minneblokk effektivt. Vi kan angi hvilken som helst karakter og 0 eller -1 som en heltallverdi til en minneblokk. Memset -funksjonen er raskere for å sette en stor del av sammenhengende minne sammenlignet med å bare sette stedet ved hjelp av en loop.