memset是计算机中C/C++语言初始化函数。作用是将某一块内存中的内容全部设置为指定的值,这个函数通常为新申请的内存做初始化工作。
函数介绍
void *memset(void *s,int ch,unsigned int n);
函数解释:将s中当前位置后面的n个字节用ch替换并返回s。
memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法。
常见错误
第一:memset函数按字节对内存块进行初始化,所以不能用memset函数将int数组初始化为0和-1之外的其他值(除非该值高字节和低字节相同)。
理解:在32位机中,int型在内存中占4个字节,存储分为大端小端,有读取顺序,如果不是0或-1,读出来的可能不同。0在内存中全是0,-1在内存中全是1。
第二:memset(void *s,int ch,size_t n)中,ch实际范围应该在0-255,因为该函数只能取ch的后8位赋值给你所输入的范围的每个字节。