In C, la funzione Memset () viene utilizzata per impostare un valore di un byte su un byte a blocchi di memoria per byte. Questa funzione è utile per l'inizializzazione di un byte a blocchi di memoria per byte con un valore particolare. In questo articolo, vedremo in dettaglio come questa funzione può essere utilizzata. Quindi iniziamo.
File di intestazione:
corda.HSintassi:
void *memset (void *str, int ch, size_t n)Questa funzione imposta la prima N byte del blocco di memoria puntato da str di cap.
Argomenti:
La funzione prende 3 argomenti:
Valori di ritorno:
memset () Restituisce il primo indirizzo del blocco di memoria da dove inizia a impostare il valore.
Esempi:
//Esempio 1.C
Nell'esempio1.C, abbiamo dichiarato una matrice di caratteri di taglia 30. Quindi l'abbiamo inizializzato con la stringa “ABCD EFGH."Nella funzione Memset, abbiamo superato 3 argomenti str, 'x' e 3. Quindi, il blocco di memoria puntato da STR verrà ripristinato i primi 3 caratteri di 'x.'Dopo memset, quando stampiamo la memoria, otterremo “xxxd efgh."
Nell'esempio2.C, abbiamo passato STR+4 alla funzione Memset. Quindi, ripristinò la memoria dopo la 4a posizione di STR. Dopo il memset, quando stampiamo la memoria, otterremo “Abcdxxxgh."
Nell'esempio3.C, abbiamo dichiarato una serie di interi di dimensione 5 e cercando di inizializzarla di 10. Ma dall'output, abbiamo visto che l'array non è inizializzato di 10; Invece, abbiamo ottenuto il valore "168430090". Questo perché il valore intero è maggiore di un byte e la funzione Memset converte il valore in un carattere non firmato prima di copiare. Ora vedremo come otterremo il valore "168430090".
La rappresentazione binaria di 10 è 00000000 00000000 00000000 00001010.
Quando l'intero convertito in carbone non firmato, viene considerato il byte inferiore. Quindi, quando 10 vengono convertiti in carattere senza segno, è una rappresentazione binaria è 00001010.
La funzione Memset () imposta il byte di posizione della memoria per byte. Quindi, un totale di 4 byte sarà: 00001010 00001010 00001010 00001010.
Il valore decimale della rappresentazione binaria di 4 byte è 168430090.
// Esempio4.C
In Esempio4.C, abbiamo inizializzato l'array intero di 0. Tutti i bit della rappresentazione binaria di 0 sono 0. Quindi l'array è inizializzato da 0.
Nell'esempio5.C, abbiamo inizializzato l'array intero di 0. Tutti i bit della rappresentazione binaria di -1 sono 1. Quindi l'array è inizializzato da -1.
Conclusione:
In questo articolo, abbiamo visto utilizzando la funzione Memset come possiamo inizializzare o impostare il valore di un blocco di memoria in modo efficiente. Possiamo impostare qualsiasi carattere e 0 o -1 come valore intero su un blocco di memoria. La funzione Memset è più veloce per impostare un grosso pezzo di memoria contigua rispetto alla semplice impostazione della posizione utilizzando un loop.