Да, он может применяться к любому буферу памяти, но вы должны ввести правильный размер буфера памяти ... memset
обрабатывает любой буфер памяти как последовательность байтов, поэтому будь то char
, int
, float
, double
и т. Д. Не имеет большого значения.Имейте в виду, однако, что он не будет устанавливать многобайтовые типы к определенному ненулевому значению ... например:
int a[100];
memset(a, 1, sizeof(a));
будет не устанавливать каждый элемент a
к значению 1 ... скорее он будет устанавливать каждый байт в буфере памяти, занятый a
до 1
, что означает, что каждый четырехбайтовый int
будет установлен в значение 0x01010101
, что не совпадает с 0x00000001