memset, as the other say, sets every byte of the array at the specified value.
The reason this works with 0 and -1 is because both use the same repeating pattern on arbitrary sizes:
(int) -1 is 0xffffffff
(char) -1 is 0xff
so filling a memory region with 0xff
will effectively fill the array with -1.
However, if you're filling it with 1
, you are setting every byte to 0x01
; hence, it would be the same as setting every integer to the value 0x01010101
, which is very unlikely what you want.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…