![The C Standard Library Reference](/c_standard_library/images/c-mini-logo.jpg)
- The C Standard Library
- C Library - Home
- C Library - <assert.h>
- C Library - <complex.h>
- C Library - <ctype.h>
- C Library - <errno.h>
- C Library - <fenv.h>
- C Library - <float.h>
- C Library - <inttypes.h>
- C Library - <iso646.h>
- C Library - <limits.h>
- C Library - <locale.h>
- C Library - <math.h>
- C Library - <setjmp.h>
- C Library - <signal.h>
- C Library - <stdalign.h>
- C Library - <stdarg.h>
- C Library - <stdbool.h>
- C Library - <stddef.h>
- C Library - <stdio.h>
- C Library - <stdlib.h>
- C Library - <string.h>
- C Library - <tgmath.h>
- C Library - <time.h>
- C Library - <wctype.h>
- C Standard Library Resources
- C Library - Quick Guide
- C Library - Useful Resources
- C Library - Discussion
- C Programming Resources
- C Programming - Tutorial
- C - Useful Resources
C library - memset() function
The C library memset() function of type void accepts three variable as parameters that copies the character c (an unsigned char) to the first n characters of the string pointed to, by the argument str.
This function is used to fill a contiguous block of memory with a specific value. It also converts the value of a character to unsigned character and copies it into each of first n character of the object pointed by the given string. If the n is larger than string size, it will be undefined.
Syntax
Following is the syntax of the C library memset() function −
void *memset(void *str, int c, size_t n)
Parameters
This function accepts the following parameters−
str − This is a pointer to the block of memory to fill.
c −
This is a second parameter of type integer and converts it to an unsigned char before using it to fill a block of memory.n − This is the number of bytes to be set to the value.
Return Value
This function returns a pointer to the memory area str.
Example 1
In this example, we set the initial string using C library memset() function, and to modify the string content it has to use memset() function.
#include <stdio.h> #include <string.h> int main () { char str[50]; strcpy(str, "Welcome to Tutorialspoint"); puts(str); memset(str, '#', 7); puts(str); return(0); }
Output
The above code produces the following result−
Welcome to Tutorialspoint ####### to Tutorialspoint
Example 2
Below the program initializes an integer array with zeroes using memset().
#include <stdio.h> #include <string.h> int main() { int arr[10]; memset(arr, 0, sizeof(arr)); printf("Array after memset(): "); for (int i = 0; i < 10; i++) { printf("%d ", arr[i]); } printf("\n"); return 0; }
Output
On execution of above code, we get the following result−
Array after memset(): 0 0 0 0 0 0 0 0 0 0
Example 3
Here, we create a C program for intializing character array with a specific character('Z') using memset().
#include <stdio.h> #include <string.h> int main() { char str[20]; memset(str, 'Z', 10); printf("String after memset(): %s\n", str); return 0; }
After executing the code, we get the following result−
String after memset(): ZZZZZZZZZZ