string.h memset () con ejemplo: Aquí, vamos a aprender acerca de la función memset () de string.h en C / C ++ lenguaje , que se utiliza para llenar un bloque de memoria con el valor dado. función
memset () en C
Función memset () es una función de biblioteca de “string.h” – que se utiliza para llenar un bloque de memoria con valor dado / particular. Se utiliza cuando se desea llenar todos o algunos de los bloques de la memoria con un valor particular.
Sintaxis de memset ():
memset(void *str, char ch, size_t n);
Se llena los bloques n de str con ch .
consideremos el ejemplo dado – y aprender cómo ‘memset) (’ puede utilizarse?
Ejemplo:
#include <stdio.h>
#include <string.h>
#define LEN 10
int main(void) {
char arr[LEN];
int loop;
printf("Array elements are (before memset()): n");
for(loop=0; loop<LEN; loop++)
printf("%d ",arr[loop]);
printf("n");
//filling all blocks with 0
memset(arr,0,LEN);
printf("Array elements are (after memset()): n");
for(loop=0; loop<LEN; loop++)
printf("%d ",arr[loop]);
printf("n");
//filling first 3 blocks with -1
//and second 3 blocks with -2
//and then 3 blocks with -3
memset(arr,-1,3);
memset(arr+3,-2,3);
memset(arr+6,-3,3);
printf("Array elements are (after memset()): n");
for(loop=0; loop<LEN; loop++)
printf("%d ",arr[loop]);
printf("n");
return 0;
}
salida
Array elements are (before memset()):
-96 11 67 103 -4 127 0 0 0 0
Array elements are (after memset()):
0 0 0 0 0 0 0 0 0 0
Array elements are (after memset()):
-1 -1 -1 -2 -2 -2 -3 -3 -3 0
Explicación:
En este ejemplo, declaramos matriz de caracteres arr de LEN bytes ( LEN es una macro con el valor 10), cuando se imprimió el valor de arr , la salida es basura porque matriz está sin inicializar. A continuación, se utilizó memset () y llenamos todos los elementos por 0 . Entonces, impreso los elementos de nuevo el valor de todos los elementos eran 0 . Entonces, nos llena primero 3 elementos con -1 y próximos 3 elementos con -2 y próximos 3 elementos con -3 . Así, los valores de todos los elementos al final: -1 -1 -1 -2 -3 -2-2 -3 -3 0 .