The manpage says about memset:
#include <string.h> void *memset(void *s, int c, size_t n)The
memset()function fills the firstnbytes of the memory area pointed to byswith the constant bytec.
It is obvious that memset can't be used to initialize int array as shown below:
int a[10];
memset(a, 1, sizeof(a));
it is because int is represented by 4 bytes (say) and one can not get the desired value for the integers in array a.
But I often see the programmers use memset to set the int array elements to either 0 or -1.
int a[10];
int b[10];
memset(a, 0, sizeof(a));
memset(b, -1, sizeof(b));
As per my understanding, initializing with integer 0 is OK because 0 can be represented in 1 byte (may be I am wrong in this context). But how is it possible to initialize b with -1 (a 4 bytes value)?