Converts the value ch to unsigned char and copies it into each of the first n characters of the object pointed to by str[]. If the object is not trivially-copyable (e.g., scalar, array, or a C-compatible struct), the behavior is undefined. If n is greater than the size of the object pointed to by str, the behavior is undefined.
Template
void* memset( void* str, int ch, size_t n); Parameters str[] : Pointer to the object to copy the character. ch : The character to copy. n : Number of bytes to copy. Return value : The memset() function returns str, the pointer to the destination string.
// CPP program to illustrate memset #include <cstring> #include <iostream> using namespace std; int main() { char str[] = "geeksforgeeks" ; memset (str, 't' , sizeof (str)); cout << str; return 0; } |
Output:
tttttttttttttt
We can use memset() to set all values as 0 or -1 for integral data types also. It will not work if we use it to set as other values. The reason is simple, memset works byte by byte.
#include <bits/stdc++.h> using namespace std; int main() { int a[5]; // all elements of A are zero memset (a, 0, sizeof (a)); for ( int i = 0; i < 5; i++) cout << a[i] << " " ; cout << endl; // all elements of A are -1 memset (a, -1, sizeof (a)); for ( int i = 0; i < 5; i++) cout << a[i] << " " ; cout << endl; // Would not work memset (a, 5, sizeof (a)); // WRONG for ( int i = 0; i < 5; i++) cout << a[i] << " " ; } |
Output:
0 0 0 0 0 -1 -1 -1 -1 -1 84215045 84215045 84215045 84215045 84215045
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
leave a comment
0 Comments